Maison > développement back-end > C++ > Comment puis-je partager l'état de session ASP.NET entre un formulaire Web .NET 2.0 et une application .NET 3.5 MVC2 ?

Comment puis-je partager l'état de session ASP.NET entre un formulaire Web .NET 2.0 et une application .NET 3.5 MVC2 ?

DDD
Libérer: 2025-01-23 21:36:11
original
696 Les gens l'ont consulté

How Can I Share ASP.NET Session State Between a .NET 2.0 Web Forms and a .NET 3.5 MVC2 Application?

Partage de session entre applications dans ASP.NET : un formulaire Web .NET 2.0 et une solution .NET 3.5 MVC2

Présentation

Le maintien de données de session cohérentes sur plusieurs applications ASP.NET simplifie la gestion des données et la communication inter-applications. Cet article aborde un défi courant : le partage de sessions entre une application Web Forms .NET 2.0 et une application .NET 3.5 MVC2 résidant sur le même serveur.

Le problème : incohérences des clés de session

Lors de l'utilisation du mode StateServer avec des paramètres stateConnectionString identiques, la clé de session est transférée avec succès, mais l'application MVC ne parvient pas à récupérer les données de session (ce qui entraîne un sessionKey nul).

La solution : exploiter l'état de session natif de SQL Server

La solution recommandée implique de configurer les deux applications pour utiliser la gestion native de l'état de session de SQL Server.

Configuration de web.config :

Modifiez les web.config fichiers des deux applications comme suit :

<sessionState mode="SQLServer" sqlConnectionString="..."/>
Copier après la connexion

Assurez-vous que l'instance SQL Server spécifiée est accessible aux deux applications et que la base de données d'état de session nécessaire existe.

Adaptation de la procédure stockée :

Ajustez la procédure stockée TempGetAppID dans la base de données d'état de session pour récupérer dynamiquement le nom de l'application à partir de la chaîne de connexion. Cela permet aux applications dont les noms correspondent de partager des sessions :

@appId int OUTPUT
AS
    ...
    -- Dynamically obtain the application name from the connection string
    DECLARE @connStrAppName nvarchar(50)
    SET @connStrAppName = APP_NAME()
    ...
Copier après la connexion

Garantir des clés de machine cohérentes :

Les deux applications doivent utiliser les mêmes machineKey paramètres, définis dans leurs web.config fichiers respectifs :

<machineKey decryption="AES" validation="SHA1" validationKey="SOMEKEY"/>
Copier après la connexion

En implémentant ces modifications, les deux applications peuvent partager de manière transparente les données de session, en utilisant des clés de session identiques et en maintenant une authentification par formulaire cohérente entre les applications.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal