2010-06-18 4 views
1

Dans quelle partie du cycle de vie Global.asax puis-je "utiliser" l'objet User en toute sécurité? J'utilise la valeur par défaut forms authentication et a remarqué ce qui suit:.NET MVC - Où vérifier IsInRole() dans Global.asax?

Sub Application_BeginRequest() 
    'Context.User Is Nothing 
End Sub 

Sub Application_AuthenticateRequest() 
    'Context.User Is Nothing 
End Sub 

Sub Application_AuthorizeRequest() 
    'Context.User is available 
    'Context.User.IsInRole() returns false while user is in role 
End Sub 

On dirait que AuthorizeRequest() devrait être le lieu, mais IsInRole() ne retourne pas le true prévu. Est-ce qu'il me manque quelque chose ici?

Répondre

3

Je pense que vous voulez vraiment faire dans Post_AuthenticateRequest:

void MvcApplication_PostAuthenticateRequest(object sender, EventArgs e) 
{ 
    // Context.User is available now, and IsInRole() should work fine; 
} 
+0

avant: I ** valider la configuration ASP.NET ** (nom d'utilisateur, IsInRole, "admin" de configuration des rôles) 0. Je cours en mode débogage 1. I ** déconnexion/connexion ** en utilisant 'nom d'utilisateur' 2. J'exécute une action qui vérifie ** IsInRole ("admin") ** Il retourne 'false'. ** Les rôles et tout sont-ils configurés? ** – Ropstah

Questions connexes