【发布时间】:2011-01-10 21:13:55
【问题描述】:
我们是否知道 asp.net 用于创建身份验证 cookie 的算法(使用表单身份验证时?)
我们基本上可以创建自己的副本实现吗?如果有,怎么做?
它使用什么来生成加密的 cookie 值,我知道它使用您传递给 SetAuthCookie 调用的任何内容(通常是用户 ID/用户名)。
【问题讨论】:
标签: asp.net security cryptography forms-authentication
我们是否知道 asp.net 用于创建身份验证 cookie 的算法(使用表单身份验证时?)
我们基本上可以创建自己的副本实现吗?如果有,怎么做?
它使用什么来生成加密的 cookie 值,我知道它使用您传递给 SetAuthCookie 调用的任何内容(通常是用户 ID/用户名)。
【问题讨论】:
标签: asp.net security cryptography forms-authentication
表单身份验证使用成员身份标识符,这是配置的成员身份提供商提供的唯一值。然后,它获取该值,加上票证中的任何用户数据集,将其转换为二进制 blob,添加发行日期、到期日期,并根据配置使用机器密钥使用 HMAC 对其进行签名,并使用机器密钥对其进行签名和加密机器钥匙,或者什么都不做(坏主意!)。
然后它将 cookie 写为仅 HTTP cookie。
然后在每个请求中加载、验证、使用成员身份标识符来查找用户,并在该线程上填充用户详细信息。如果设置了滑动票到期,它将刷新 cookie 以具有新的到期日期。
【讨论】: