我们是否知道asp.net用于创建身份验证cookie的算法(使用表单身份验证时?)
我们基本上可以创建自己的副本实现吗?如果是这样,怎么样?
它用于生成加密的cookie值,我知道它使用你传递给SetAuthCookie调用的任何内容(通常是用户ID /用户名)。
答案 0 :(得分:6)
表单身份验证使用成员资格标识符,这是配置的成员资格提供程序提供的唯一值。然后它获取该值,加上故障单中的任何用户数据集将其转换为二进制blob,添加发布日期,到期日期,并根据配置使用机器密钥与HMAC签名,使用它进行签名和加密机器钥匙,或什么都不做(坏主意!)。
然后它将cookie写为仅HTTP的cookie。
然后在每个请求上加载它,验证它,使用成员资格标识符来查找用户,并在该线程上填充用户详细信息。如果设置了滑动票证到期,它将刷新cookie以具有新的到期日期。