2012-02-24 3 views
1

Dans ma page de connexion, j'emprunte l'identité de l'utilisateur connecté. L'utilisateur a un compte dans AD et j'ai Integrated Security = true dans mes chaînes de connexion. De cette façon, l'utilisateur devrait avoir accès à la base de données.Combien de temps l'emprunt d'identité ASP.NET dure-t-il?

J'usurper l'identité en utilisant le code ci-dessous dans la page de connexion

...
tempWindowsIdentity = New WindowsIdentity(tokenDuplicate)
impersonationContext = tempWindowsIdentity.Impersonate()

Est-ce que cette dernière usurpation d'identité jusqu'à la fin de la session des utilisateurs? L'application appelle plusieurs autres DLL de projet, qui appellent également la base de données, ainsi qu'un service Web sur un autre serveur qui frappe le même DB. Si ce n'est pas le cas, à quelle fréquence dois-je demander une usurpation d'identité? Beaucoup d'appels DB sont faits partout.

En d'autres termes,
J'ai besoin d'authentification par formulaire avec un accès anonyme ENABLED afin que je puisse montrer mon écran de connexion, mais je dois aussi l'identité AD de l'utilisateur à personnifié (de préférence, mis une seule fois) tout au long de ma demande

Répondre

0

http://msdn.microsoft.com/en-us/library/aa292118(v=vs.71).aspx

Selon le contenu ci-dessus, l'usurpation dure avec le thread. Comme asp.net utilise des threads différents pour chaque requête, vous devez ré-usurper l'identité souvent.

+0

-1: c'est le contenu .NET 1.1. S'il vous plaît ne le postez pas à moins que la question concerne .NET 1.1. –

+1

Vous pouvez également lire http://msdn.microsoft.com/en-us/library/ff647404.aspx. @ JohnSaunders, parfois Microsoft a oublié de mettre à jour d'excellents articles pour les nouvelles versions .NET. Par conséquent, downvoting par cette raison n'est pas juste. –

+0

@LexLi: il m'a fallu cinq minutes pour trouver http://msdn.microsoft.com/en-us/library/xh507fc5.aspx. –

Questions connexes