【发布时间】:2011-04-17 05:43:30
【问题描述】:
我正在创建一个 MVC 网站,我想在我的网站中混合使用表单身份验证(内置身份验证)和 Twitter 身份验证(最终它也将具有 Facebook/Google 身份验证)。
我正在采取的方法是这样的: - 我让逻辑来创建用户并验证表单身份验证中的用户/密码,因为它开箱即用。 - 我创建了一个新的用户表,在其中保存了用户名、我的站点中的用户 ID 以及该用户的身份验证服务(“Forms”、“Twitter”、“Facebook”)。 - 当用户使用任何一种身份验证方法登录时,我会创建一个标准的身份验证 cookie,将用户 ID 和身份验证服务添加到 cookie 的 UserData 中。
现在,我希望用户在关闭浏览器后能够保持登录状态,无论用户使用哪个服务登录。我的意思是,如果用户再次打开该网站,他将不会不必在网站上再次授权 Twitter。 现在,使用 cookie 方法,MVC 从 cookie 中加载用户信息,并且用户在进入站点时似乎已登录,这正是我想要的。
问题是,如果用户撤销我网站的访问权限,用户的身份验证 cookie 仍然有效,并且用户将显示为已登录,即使我的网站的授权已被撤销。
我的问题是,有没有办法在 MVC 从授权 cookie 加载信息时验证授权?我知道我可以使用自定义 AuthorizeAttribute 并在 AuthorizeCore 方法上对其进行验证,但是只有在用户访问需要身份验证的 ActionMethod 时才会调用它。
感谢您的帮助。
【问题讨论】:
标签: asp.net-mvc cookies oauth authorization