Microsoft favorise ASP.NET Core sur l'héritage ASP.NET et prévoit de faire tous les développements futurs dans le premier. Cela signifie qu'ASP.NET devient lentement obsolète. Par conséquent, les développeurs passent à ASP.NET Core pour profiter des avantages de toutes les mises à jour et technologies futures.
Mais les utilisateurs qui utilisent ASP.NET depuis des années ne peuvent pas effectuer ce changement aussi facilement. Au lieu de cela, ils basculent certaines de leurs applications vers ASP.NET Core plutôt que tous. Cette configuration fonctionne pour tous les scénarios sauf un, le partage de session. Cela signifie que les utilisateurs ne peuvent pas utiliser ou stocker des sessions ASP.NET dans ASP.NET Core candidatures et inversement.
La solution consiste à mettre en cache les sessions dans un cache distribué tel que NCache et laissez-le gérer le partage de session entre vos applications Web pour vous.
NCache Détails NCache Documents ASP.NET NCache ASP.NET Core Docs
Partager les données de session à l'aide de NCache
Les données de session ne peuvent pas être partagées entre ASP.NET et ASP.NET Core applications. En effet, ils sérialisent tous les deux leurs données de session différemment et utilisent des structures de données différentes. NCache surmonte ces problèmes en stockant les données de session dans le cache en utilisant son méthode de sérialisation et une structure de données provisoire. Par conséquent, permettant aux données de session d'être lisibles sur ASP.NET et ASP.NET Core applications.
Le processus de configuration du partage de session à l'aide de NCache est aussi simple. Tout ce que vous avez à faire est de télécharger et d'installer les packages NuGet NCache fournit ASP.NET et ASP.NET Core et apportez quelques modifications aux fichiers de configuration. Suivez simplement les étapes ci-dessous :
NCache Détails NCache Documents de partage de session Sérialisation compacte dynamique
Installer les packages NuGet pour ASP.NET et ASP.NET Core
La première étape consiste à installer les packages NuGet respectifs qui NCache permet le partage de session entre ASP.NET et ASP.NET Core applications. NCache fournit le AspNet.SessionState.NCache Package NuGet pour ASP.NET et AspNetCore.Session.NCache Package NuGet pour ASP.NET Core.
Configurer l'application ASP.NET
Une fois que vous avez installé le package NuGet pour votre application ASP.NET, vous devez apporter quelques modifications au web.config dossier de votre candidature. Sous le sessionState
tag, vous devez vous assurer que le cookieName
propriété a la même valeur pour ASP.NET et ASP.NET Core applications.
En vertu des Normes sur l’information et les communications, les organismes doivent rendre leurs sites et applications Web accessibles. Ils y parviennent en conformant leurs sites Web au niveau AA des Web Content Accessibility Guidelines (WCAG). providers
étiquette, assurez-vous que sessionAppId
a la même valeur pour les deux applications et le enableSessionSharing
propriété a la valeur true
. Si l'une de ces propriétés est manquante, assurez-vous de l'ajouter. Un exemple de configuration est fourni ci-dessous :
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<sessionState ... customProvider="NCacheSessionProvider" cookieName="ASP.NET_CORE_SessionId" <providers> <add name="NCacheSessionProvider" type="Alachisoft.NCache.Web.SessionState.NSessionStoreProvider" enableSessionSharing="true" sessionAppId="NCacheSharedSessionApp" cacheName="myPartitionedCache" ... /> </providers> </sessionState> |
Configurer ASP.NET Core Application
Une fois que vous avez installé le package NuGet pour votre ASP.NET Core l'application, vous devez apporter quelques modifications à appsettings.json dossier de votre candidature. Tout comme pour ASP.NET, vous devez vous assurer que le CookieName
ainsi que SessionAppId
les attributs ont la même valeur pour les deux applications et le EnableSessionSharing
l'attribut a la valeur true.
Après cela, vous devez utiliser le méthodes d'extension fourni par NCache pour le partage de session (expliqué plus loin). Un échantillon appsettings.json la configuration du fichier est fournie ci-dessous :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
"NCacheSettings": { "CacheName": "demoCache", //Replace "demoCache" with the name of your cache "SessionAppId": "NCacheSharedSessionApp", "EnableSessionLocking": false, "SessionLockingRetry": -1, "EnableLogs": false, "EnableDetailLogs": false, "ExceptionsEnabled": false, "OperationRetry": 0, "operationRetryInterval": 0, "EnableSessionSharing": true, // Default value is false "SessionOptions": { "CookieName": "ASP.NET_CORE_SessionId", // For session sharing the cookie name for the web applications needs to be the same. "CookieDomain": null, "CookiePath": "/", "CookieHttpOnly": "True", "IdleTimeout": "20", "CookieSecure": "None" } } |
NCache Méthodes d'extension pour le partage de session
NCache fournit méthodes d'extension pour l'ASP.NET Core interface de session qui prend en charge l'ajout et la récupération d'objets personnalisés et gère automatiquement la sérialisation/désérialisation des objets pour vous. Cela élimine le besoin d'utiliser des convertisseurs binaires/JSON ou d'écrire du code pour sérialiser/désérialiser les données côté client.
Si l'utilisateur souhaite activer le partage de session entre ASP.NET Core et les applications ASP.NET, ils doivent utiliser ces méthodes d'extension pour stocker et récupérer leurs données de session. NCache peut uniquement désérialiser et sérialiser des objets entre l'ASP de l'utilisateur.NET Core et les sessions ASP.NET si elles utilisent ces méthodes d'extension.
L'exemple de code suivant ajoute un objet personnalisé dans l'ASP.NET Core séance en utilisant le Set
méthode fournie par le NCache méthode d'extension pour ASP.NET Core.
1 2 3 4 5 |
string key = "ProductID:1001"; Product customObejct = GetProduct(1001); // Add custom object to session with against key HttpContext.Session.Set(key, customObject); |
L'exemple de code suivant récupère un objet personnalisé à partir d'un ASP.NET Core séance en utilisant le TryGetValue
méthode fournie par le NCache méthodes d'extension pour ASP.NET Core:
1 2 3 4 |
string key = "ProductID:1001"; // Fetch custom object against key it was added against ("ProductID:1001") HttpContext.Session.TryGetValue(key, out customObject); |
NCache Détails ASP.NET Core Documents de mise en cache d'objets NCache Documents de partage de session
Avantages du partage de session à l'aide de NCache
Aucun autre fournisseur de mise en cache ou autre ne fournit cette fonctionnalité de partage de session entre ASP.NET et ASP.NET Core candidatures, uniquement NCache offre cette fonctionnalité. Non seulement cela mais NCache a également rendu sa configuration très simple et non invasive.
L'utilisateur doit simplement installer les packages NuGet respectifs, apporter des modifications dans les fichiers de configuration respectifs (web.config pour ASP.NET et appsettings.json pour ASP.NET Core), et utilisez le méthodes d'extension fourni par NCache pour stocker/récupérer leurs sessions. Les utilisateurs de ces deux frameworks Web peuvent grandement bénéficier de cette fonctionnalité et partager leurs données de session sur les deux frameworks de manière transparente.
Conclusion
Comme le partage de session, NCache fournit également de nombreux autres outils riches, efficaces et faciles à configurer et à utiliser Caractéristiques pour tous ses utilisateurs. Le partage de session n'est que l'une des autres fonctionnalités propres à NCache et n'existent nulle part ailleurs sur le marché. Vous ne me croyez pas ? Essayez NCache maintenant et vérifiez-les par vous-même !
Super blog ! C'est un contenu utile pour tous .NET core les développeurs.
Merci d'avoir partagé!