asp.net-mvc – 使用表单身份验证在ASP.NET MVC上存储登录的用户
发布时间:2020-12-16 00:43:40 所属栏目:asp.Net 来源:网络整理
导读:我在我的应用程序中使用ASP.NET MVC和表单身份验证。基本上我使用FormsAuthentication.SetAuthCookie登录和FormsAuthentication.SignOut来注销。 在HttpContext.Current.User.Identity中,我已经存储了用户名,但是我需要更多关于登录用户的信息。我不想将整
我在我的应用程序中使用ASP.NET MVC和表单身份验证。基本上我使用FormsAuthentication.SetAuthCookie登录和FormsAuthentication.SignOut来注销。
在HttpContext.Current.User.Identity中,我已经存储了用户名,但是我需要更多关于登录用户的信息。我不想将整个用户对象存储在会话中,因为它可能比我需要的更大,更多的信息。 你认为创建一个名为LoggedUserInfo的类只有我需要的属性是一个好主意,然后将其添加到Session变量中?这是一个好办法吗? 还是你有更好的想法? 解决方法
我用这个解决方案:
ASP.NET 2.0 Forms authentication – Keeping it customized yet simple 总结:我创建了我自己的IPrincipal实现。它存储在HttpContext.Current.Cache中。如果它失去了,我有客户端授权cookie的用户名,并可以重建它。这个解决方案不依赖于Session,这可以很容易地丢失。 编辑 如果您想在控制器中使用您的校长,并使其可测试,您可以这样做: private MyPrincipal _myPrincipal; MyPrincipal MyPrincipal { get { if (_myPrincipal == null) return (MyPrincipal)User; return _myPrincipal; } set { _myPrincipal = value; } } 在测试中,您将设置对象准备进行测试。否则将从HttpContext中获取。现在我开始思考了,为什么要用Ninject来做呢? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 如何在web.config中设置不同的stmpclient
- asp.net – Chrome在成功的文件下载(200状态)上显示“已取消
- asp.net – global.asax中应用程序的物理路径
- asp.net-mvc-5 – Web API和MVC 5控制器上的CORS:使用fetc
- asp.net-mvc – 在ASP.NET MVC应用程序中测试AutoMapper配置
- “ASP.NET”错误:拒绝访问远程服务器,因为不存在登录映射
- Asp.net复选框和html数据属性
- asp.net-mvc – 获取VS2010,特别是Razor视图,将自定义“dat
- asp.net-mvc-3 – Autofac等同于Ninject的WhenInjectedInto
- asp.net-mvc – 在PasswordSignInAsync成功后,User.Identit
推荐文章
站长推荐
热点阅读