asp.net – FormsAuthentication.SetAuthCookie做了什么
我正在使用一个createuserwizard控件.在CreatedUser事件上,我放置了此代码以将用户添加到角色.
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); } 我还想知道FormsAuthentication.SetAuthCookie是什么(RegisterUser.UserName,false / * createPersistentCookie * /);表示它的用途以及为什么Membership.GetUser()为null. 解决方法
您的CreateUserWizard上有LoginCreatedUser =“false”或DisableCreatedUser =“true”吗?
这些将阻止用户立即登录,并导致Membership.GetUser()返回null,因为用户当前未登录. 如果您希望用户立即登录,请在CreateUserWizard上同时设置LoginCreatedUser =“true”和DisableCreatedUser =“false”.这应该让你当前的代码工作. FormsAuthentication.SetAuthCookie()设置浏览器cookie以启动用户的会话.这是每次将页面发布到服务器时保持用户登录的内容. createPersistentCookie创建一个持久性cookie,在浏览器关闭时不会过期,因此用户可以返回该站点并自动登录.它应该基于用户是否选中了“登录”表单上的“记住我”复选框.默认情况下,它在CreateUserWizard表单中不可用,但如果您愿意,可以在模板中为其添加复选框. 如果您不希望用户自动登录,请从代码中删除FormsAuthentication.SetAuthCookie()行,并相应地设置CreateUserWizard属性.如果要在用户登录之前批准用户,请设置DisableCreatedUser =“true”.这将阻止他们登录,直到您从IIS管理器中的.Net用户模块设置用户IsApproved = true,或者您拥有自定义网页来批准用户. 您仍然可以在创建用户时将用户添加到适当的角色,而无需将其登录: if (!Roles.IsUserInRole(RegisterUser.UserName,"Test")) { Roles.AddUserToRole(RegisterUser.UserName,"Test"); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-web-api2 – 什么导致swagger已经出现在Web API 2的
- asp.net-mvc – 如何在asp.net中使用Captcha mvc
- asp.net-mvc – 其中Simple Injector等效于StructureMap的O
- asp.net-mvc – 在MVC 5中创建一个新视图,在HTTP 404中打开
- asp.net-mvc – 在Generic Repository中定义Default构造函数
- asp.net-mvc – ASP.NET MVC角色授权
- asp.net-mvc-3 – ASP.NET MVC 3应用程序的扩展?
- asp.net-mvc – ELMAH没有记录违规代码行号
- 单元测试 – 自动混合和WebApi控制器
- ASP.NET页面生命周期解释
- asp.net – 会话在20分钟后到期:是否空闲
- 关于Expression Tree和IL Emit的所谓的"性能
- ASP.NET MVC UrlHelper.GenerateUrl异常:“无法
- asp-classic – 在VBScript中输出GUID会忽略它之
- asp.net-mvc – 如何检查哪个动作方法呈现当前视
- asp.net-mvc-5 – ASP.NET MVC中Controller的模型
- asp.net-mvc如何更改宽度Html.TextBox
- asp.net – MVC4默认路由指向某个区域
- asp.net access web.config denied
- asp.net – 如何防止FormView在Insert方法被触发