为什么SetAuthCookie不会直接在Membership.ValidateUser中调用?

时间:2012-11-19 14:16:27

标签: asp.net-mvc asp.net-mvc-3 authentication

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

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

1 个答案:

答案 0 :(得分:2)

这是因为我猜想会分开担忧。

成员资格提供者的责任只是验证给定的用户名/密码对是否有效。

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

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