如何创建身份验证cookie,但没有asp.net formsauthentication?

时间:2010-01-29 14:52:00

标签: asp.net security cryptography forms-authentication

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

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

它用于生成加密的cookie值,我知道它使用你传递给SetAuthCookie调用的任何内容(通常是用户ID /用户名)。

1 个答案:

答案 0 :(得分:6)

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

然后它将cookie写为仅HTTP的cookie。

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