如何创建身份验证 cookie,但不使用 asp.net formsauthentication?

发布于 2024-08-20 06:37:05 字数 169 浏览 5 评论 0原文

我们是否知道 asp.net 用于创建身份验证 cookie 的算法(当使用表单身份验证时?)

我们基本上可以创建自己的副本实现吗?如果是这样,怎么办?

它使用什么来生成加密的 cookie 值,我知道它使用您传递到 SetAuthCookie 调用中的任何内容(通常是用户 ID/用户名)。

Do we know the algorithm that asp.net uses to create the authentication cookie (when using forms authentication?)

Can we basically create our own copy implementation? if so, how?

What does it use to generate the encrypted cookie value, I know it uses whatever you pass into the SetAuthCookie call (which is usually the userID/username).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

两相知 2024-08-27 06:37:05

表单身份验证使用成员资格标识符,这是由配置的成员资格提供程序提供的唯一值。然后,它采用该值,加上票证中的任何用户数据集,将其转换为二进制 blob,添加发行日期、到期日期,并根据配置,使用机器密钥使用 HMAC 对其进行签名,使用机器钥匙,或者什么都不做(坏主意!)。

然后它将 cookie 作为仅 HTTP cookie 写出。

然后,在每个请求中,它都会加载它,验证它,使用成员身份标识符来查找用户,并填充该线程上的用户详细信息。如果设置了滑动票据到期日,它将刷新 cookie 以获取新的到期日。

The forms authentication take uses the membership identifier, a unique value provided by the configured membership provider. It then takes that value, plus any user data set in the ticket turns it into a binary blob, adds an issue date, an expiry date and depending on the configuration either signs it with an HMAC using the machine key, signs and encrypts it with the machine key, or does nothing at all (bad idea!).

It then writes the cookie out as an HTTP only cookie.

Then on each request it loads it in, validates it, uses the membership identifier to lookup the user, and populates the user details on that thread. If sliding ticket expiry is set it will refresh the cookie to have a new expiry date.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文