Que fait FormsAuthentication.SetAuthCookie
Je suis en utilisant Un contrôle createuserwizard. Sur le CreatedUser Cas j'ai placé ce code pour ajouter l'utilisateur à un rôle.
protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);
if (!Roles.IsUserInRole("Test"))
{
var User= Membership.GetUser();
Roles.AddUserToRole(User.UserName, "Test");
}
string continueUrl = RegisterUser.ContinueDestinationPageUrl;
if (String.IsNullOrEmpty(continueUrl))
{
continueUrl = "~/";
}
Response.Redirect(continueUrl);
}
Je voudrais aussi savoir ce que FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);
signifie et à quoi il sert et pourquoi Membership.GetUser()
est null.
source d'informationauteur David
Vous devez vous connecter pour publier un commentaire.
Avez-vous des
LoginCreatedUser="false"
ouDisableCreatedUser="true"
sur votreCreateUserWizard
?Ceux qui vont empêcher l'utilisateur d'être connecté immédiatement, et la cause
Membership.GetUser()
à retourner la valeur null, parce que l'utilisateur n'est pas connecté actuellement.Si vous voulez que l'utilisateur soit connecté immédiatement, ensemble ni ou les deux
LoginCreatedUser="true"
etDisableCreatedUser="false"
sur votreCreateUserWizard
. Que devez obtenir votre code de travail.FormsAuthentication.SetAuthCookie()
définit un cookie de navigateur pour lancer la session de l'utilisateur. C'est ce qui maintient la connexion de l'utilisateur à chaque fois qu'une page est publiée sur le serveur.createPersistentCookie
crée un cookie persistant qui n'a pas de date d'expiration lorsque le navigateur est fermé, de sorte que l'utilisateur peut retourner sur le site et être connecté automatiquement. Elle doit être basée sur si l'utilisateur a coché la case "se Souvenir de moi" case à cocher sur votre formulaire de Connexion. Il n'est pas disponible sur leCreateUserWizard
forme par défaut, mais vous pouvez ajouter une case à cocher dans votre modèle, si vous le souhaitez.Si vous ne voulez pas que l'utilisateur s'est connecté automatiquement, retirez le
FormsAuthentication.SetAuthCookie()
ligne à partir de votre code et configurer leCreateUserWizard
propriétés de façon appropriée. Si vous souhaitez approuver les utilisateurs avant qu'ils peuvent se connecter, de définirDisableCreatedUser="true"
. Qui va les empêcher de se connecter jusqu'à ce que vous définissez l'utilisateurIsApproved=true
partir de la .Net module des Utilisateurs dans le Gestionnaire des services IIS, ou vous propre page web personnalisée d'approuver les utilisateurs.Vous pouvez toujours ajouter l'utilisateur au rôle approprié lorsque l'utilisateur est créé, sans besoin de se connecter à:
Après la création de l'utilisateur, vous voulez être connecté, tout de suite, c'est exact? Si c'est le cas, vous déposez le auth cookie qui est utilisé par asp.net pour déterminer si l'utilisateur est authentifié (différent autorisé). Le "faux" signifie qu'il n'est pas persistant (l'équivalent de "se Souvenir de moi?", à connecter sur la forme.
La raison pour laquelle votre utilisateur est NUL, je suggère de placer un point d'arrêt juste avant que GetUser appeler et interroger vos données utilisateur magasin pour voir si sa existe vraiment.