3

我目前正在 ASP.NET MVC3 中实现自定义成员资格提供程序,并且一直在查看不同示例实现的示例。我注意到FormsAuthentication.SetAuthCookie()似乎从未从ValidateUser提供程序中的方法调用。它似乎总是在调用ValidateUserifValidateUser返回 true 的函数中调用。这通常是某种形式的身份验证助手。

我不明白的是,一旦返回 true ,它SetAuthCookie()似乎就会被调用。ValidateUser所以我的问题是为什么不直接整合它?

4

1 回答 1

2

我猜这是因为关注点分离。

会员提供者的职责只是验证给定的用户名/密码对是否有效。

方法的任务是将该FormsAuthentication.SetAuthCookie()信息(用户已成功验证自己)转换为可序列化的格式(cookie 或 url 参数),以便在下一个 HTTP 请求中继续存在。

您可以相互独立地替换这两种实现,将身份验证信息存储在 cookie 中只是 asp.net 平台上最常见的方式。

于 2012-11-19T15:35:58.983 回答