asp.net-mvc – 使用表单身份验证在ASP.NET MVC上存储登录的用户信息的位置?
|
我在我的应用程序中使用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分析器错误无法加载代码
- asp.net – Application_EndRequest没有找到Session
- asp.net-mvc – 如何使用Simple Injector装饰ASP.NET MVC控
- iis-7 – 使用asp.net在开发机器上创建无cookie应用程序
- 如何在我的域模型中实现ASP.NET成员资格提供程序
- asp.net-mvc – ASP.NET MVC在Html帮助器中使用部分渲染
- ASP.NET MVC正则表达式路由约束
- asp.net-mvc – {get;组; }在ViewModel中使用
- asp.net-mvc – ASP.NET MVC控制器中的构造函数依赖注入
- asp.net-mvc-2 – 动态生成的模型中的ASP.NET MVC 2数据注释
