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