2009-06-13 5 views
0

J'essaie de créer un système de connexion pour mon site Web, j'ai créé un login.ascx personnalisé et lorsque l'utilisateur clique sur [Connexion] une div apparaît avec le contenu de login.ascx.Comment puis-je configurer une connexion ASP.NET pour permettre à UserName ou UserId d'être récupéré plus tard dans la session?

Ensuite, après que l'utilisateur entre ses informations d'identification, ils cliquent sur le bouton de connexion. Ils se validés et enregistrés en utilisant ce code dans la fonction connexion de clic:

if(Membership.ValidateUser(userName.Text, password.Text)) 
{ 
    //Here is where I'm not sure what to do 
} 
else 
{ 
    LoginError.Visible = true; 
} 

Ainsi, dans la section où je ne suis pas sûr de ce qu'il faut faire, je voudrais à l'utilisateur de se connecté (Je ne sais pas si cela signifie créer un ticket d'authentification ou autre). Quelle est la prochaine étape pour réellement connecter l'utilisateur, je ne veux pas qu'ils soient redirigés n'importe où, car ils sont déjà sur la bonne page. Je voudrais aussi être en mesure de récupérer leur nom d'utilisateur ou identifiant d'utilisateur plus tard pour une utilisation dans mes services Web. Donc, pour cela devrais-je faire un Session.Add pour créer une nouvelle valeur de session ou existe-t-il un autre moyen de stocker les données qui sont préférées?

Répondre

2

Pour authentifier l'utilisateur,

FormsAuthenatication.SetAuthCookie(username, false/*true if you want to remember the user's login*/); 

Enregistre l'utilisateur. Vous pouvez ensuite utiliser

Page.User.Identity.Name 

pour récupérer le nom d'utilisateur de l'utilisateur actuel et

Page.User.Identity.IsAuthenticated 

pour vérifier si l'utilisateur est connecté.

1

Il n'est pas nécessaire de le stocker dans Session. Il suffit d'utiliser:

FormsAuthentication.SetAuthCookie 

pour envoyer un ticket d'authentification au client. Ensuite, utilisez HttpContext.Current.User.Identity pour le récupérer plus tard.

Questions connexes