Joh*_*rum 4 authentication asp.net-mvc session asp.net-membership
我正在调用一个服务,我需要在每次发出请求时传递用户的永久安全令牌.
为此,我已将此方法添加到我的基本控制器类:
protected UserData getUsr()
{
try
{
UserData usr = new UserData();
usr.SecurityToken = Session["secToken"].ToString();
MembershipUser mvcUser = Membership.GetUser(HttpContext.User.Identity.Name);
usr.Id = (int)mvcUser.ProviderUserKey;
return usr;
}
catch (Exception ex)
{
log.Debug("Could not create usr object", ex);
throw new Exception("Could not authenticate");
}
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是,有时User.Identity数据会超出会话数据,导致用户看到他们登录但随后他们的请求失败会发生奇怪的错误.
有没有更好的方法来存储此令牌/我可以存储它以便它会在User.Identity对象到期时到期吗?
此外,如果有人知道一些很好的基本理解示例/文档HttpContext和MVC授权过滤器将是伟大的.
我会去表单身份验证cookie本身存储用户的安全令牌.本FormsAuthenticationTicket
类包含的UserData
属性,你可以包括你更多的信息.
UserData
属性中指定的值包含在身份验证票证cookie的一部分中,并且与其他票证字段一样,根据表单身份验证系统的配置进行加密和验证.
下面是一个文章所描述如何可以存储更多信息窗体身份验证Cookie.
这是一篇很重要的文章,解释了将更多数据存储到表单身份验证中.cookie以及如何阅读它.代码是用VB编写的,格式不正确.您必须向下滚动到故障单中的步骤4:存储其他用户数据.
这个主题将为您提供一个快速回答如何UserData
从cookie中读取的答案.
我会去创建一个ValueProvider
像这里描述的那个将从auth读取安全令牌的自定义.cookie和动作参数的提要.
归档时间: |
|
查看次数: |
5792 次 |
最近记录: |