asp.net – HttpContext.Current.User.Identity.Name始终是strin
发布时间:2020-12-15 18:45:12 所属栏目:asp.Net 来源:网络整理
导读:嗨,我使用自定义MembershipProvider。 我想知道应用场景下的当前用户名,但是当我尝试访问HttpContext.Current.User.Identity.Name时,它总是返回string.Empty。 if (Membership.ValidateUser(tbUsername.Text,tbPassword.Text)){ FormsAuthentication.SetA
嗨,我使用自定义MembershipProvider。
我想知道应用场景下的当前用户名,但是当我尝试访问HttpContext.Current.User.Identity.Name时,它总是返回string.Empty。 if (Membership.ValidateUser(tbUsername.Text,tbPassword.Text)) { FormsAuthentication.SetAuthCookie(tbUsername.Text,true); bool x = User.Identity.IsAuthenticated; //true string y = User.Identity.Name; //"" FormsAuthentication.RedirectFromLoginPage(tbUsername.Text,cbRememberMe.Checked); } 我缺少什么? 解决方法FormsAuthentication.SetAuthCookie(tbUsername.Text,true); bool x = User.Identity.IsAuthenticated; //true string y = User.Identity.Name; //"" 您所遇到的问题是,您只需设置身份验证cookie,在发出新请求之前,不会发生在表单身份验证模块中创建的IPrincipal,因此HttpContext.User处于异常状态。一旦重定向发生,那么因为它是一个来自浏览器的新请求,所以在您的页面到达之前,cookie将被读取,并创建正确的用户对象。 Cookie只有在请求完成后才能在浏览器中设置。 除此之外,RedirectFromLoginPage还会创建一个表单验证cookie,您不需要手动进行 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ASP.NET浏览器显示“网页已过期”的后退按钮(回发后)
- asp.net-mvc – 如何在ASP.Net MVC中的EditorTemplates中显
- asp.net mvc datatable
- ASP.NET MVC应用程序安全性
- 什么是ASP.NET MVC中的环境路由值及其工作原理?
- asp.net-mvc – 接受逗号和点作为小数分隔符[重复]
- asp.net-mvc – 如何使用ASP.NET MVC,WebAPI和MEF为每个请求
- asp.net-mvc-4 – jQuery DatePicker MVC4 EditorFor
- asp.net – 是否有任何使用自动生成的视觉工作室标签
- asp.net-mvc – 从基本控制器继承LINQ-to-SQL数据上下文
推荐文章
站长推荐
热点阅读