gpt4 book ai didi

asp.net-mvc - MVC 在 session 中保存 token

转载 作者:行者123 更新时间:2023-12-04 23:59:03 25 4
gpt4 key购买 nike

我正在调用一个服务,我需要在我提出的每个请求中传递用户的永久安全 token 。

为了做到这一点,我已将此方法添加到我的基本 Controller 类中:

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");
}
}

这里的问题是有时 User.Identity 数据比 session 数据更持久,导致用户看到他们登录但随后他们的请求失败时会发生奇怪的错误。

有没有更好的方法来存储这个 token /我可以以这样的方式存储它,只要 User.Identity 对象过期,它就会过期?

此外,如果有人知道 HttpContext 和 MVC 授权过滤器的一些良好的基本理解示例/文档,那将会很棒。

最佳答案

我会将用户的安全 token 存储在表单例份验证 cookie 本身中。 FormsAuthenticationTicket类包含一个 UserData您可以在其中包含您的附加信息的属性(property)。

The value specified in the UserData property is included as part of the authentication ticket cookie and, like the other ticket fields, is encrypted and validated based on the forms authentication system's configuration.



这是一个 article描述了如何将附加信息存储到表单例份验证 cookie。

This是一篇很大的文章,其中详细介绍了如何将附加数据存储到表单 auth 中。 cookie 以及如何阅读它。代码是用VB编写的,格式不太好。您必须向下滚动到第 4 步:在票证中存储其他用户数据。

thread将快速回答您如何阅读 UserData从 cookies 。

我会去创建一个自定义 ValueProvider就像描述的一样 here这将从身份验证读取安全 token 。 cookie 并提供给操作参数。

关于asp.net-mvc - MVC 在 session 中保存 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13170618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com