ASP.NET Adhésion: comment définir l'utilisateur connecté
Je suis en train d'essayer d'obtenir l'Adhésion du Fournisseur à travailler.
Pour l'instant j'ai:
<asp:Login ID="Login1" runat="server" OnAuthenticate="Login1_Authenticate">
</asp:Login>
appel :
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
if(Membership.ValidateUser(Login1.UserName, Login1.Password))
{
Response.Redirect("/admin/default.aspx");
//Set the user as logged in?
}
}
Si j'entre le bon login/mot de passe, le ValidateUser fonction renvoie la valeur true. Donc ma question est: comment puis-je régler l'utilisateur connecté?
Je suis en train de tester cela dans mes pages à faire :
protected void Page_Load(object sender, EventArgs e)
{
if ( Membership.GetUser()==null)
{
Response.Redirect("/admin/login.aspx");
}
//else "you are logged in, congratulations"
}
, J'aurais utilisé les fonctions par défaut, mais il n'est tout simplement pas de travail et une recherche sur google m'a fait penser que je vais gagner du temps en recoder tout ce que moi-même.
Rien aidera!
MODIFIER: en ce qui Concerne la accepté de répondre, c'est le bon pour "comment définir l'utilisateur connecté et fonctionne très bien. Il n'a pas résolu mon problème, mais seulement une partie. La pensée, si vous regardez pensais que les commentaires, vous trouverez des indices intéressants.
EDIT 2 et solution: Ok j'ai enfin grâce à tous les commentaires. Voici ce que j'ai fait, c'est plus simple que ce que j'attendais :
Page qui vérifie l'état de connexion:
protected void Page_Load(object sender, EventArgs e)
{
if ( !Request.IsAuthenticated)
{
Response.Redirect("/admin/login.aspx");
}
Fermer la session:
protected void LoginStatus1_Logout(object sender, LoginCancelEventArgs e)
{
FormsAuthentication.SignOut();
Response.Redirect("/admin/login.aspx");
}
}
web.config:
<authentication mode="Forms" />
de connexion:
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
if(Membership.ValidateUser(Login1.UserName, Login1.Password))
{
FormsAuthentication.SetAuthCookie(Login1.UserName, true);
Response.Redirect("/admin/default.aspx");
}
}
Vous devez vous connecter pour publier un commentaire.
Mettre cela en
Login1_Authenticate
avant d'appelerResponse.Redirect("/admin/default.aspx");
Essayez de déplacer votre code et Gromer la suggestion de la LoggedIn événement.
EDIT: Comme Gromer dit, ne faites cela que si vous devez exécuter un certain code de commerce, après que l'utilisateur est connecté et avant de s/il est redirigé.
EDIT EDIT: Visual Studio décrit les Authentifier événement", a appelé à authentifier l'utilisateur", ce qui implique que l'utilisateur n'est pas authentifié avant l'événement est appelé. Ainsi, vous ne pouvez pas confirmer que l'utilisateur est connecté, car il/elle n'a pas été authentifié.
Gromer a la réponse, mais vous pouvez aussi prendre un coup d'oeil à cet article MSDN pour en savoir plus:
http://msdn.microsoft.com/en-us/library/ms998347.aspx
Alors que je ne sais pas combien d'aider ce sera, c'est passe-partout de code que j'utilise pour discerner entre les administrateurs ou les utilisateurs réguliers. Fonctionne très bien pour moi.
Sur votre page de connexion, probablement onclick créer votre objet utilisateur et appel d'une fonction avec ce code (UserRole est un Enum avec vos rôles):
Dans votre site web.config:
... et si vraiment vous voulez, dans votre Global.asax page: