2010-09-25 74 views
0

我正在创建一个MVC网站,我想在我的网站中混合使用Twitter身份验证的表单身份验证(内置身份验证)(最终还会有Facebook/Google身份验证)。加载授权cookie时验证用户Twitter授权

我采取的方法是这样的: - 我让逻辑创建用户并验证来自Forms身份验证的用户/密码,因为它是开箱即用的。 - 我创建了一个新的用户表,在这里我保存了用户的名字,用户在我的网站上的ID以及该用户的身份验证服务(“Forms”,“Twitter”,“Facebook”)。 - 当用户使用任何身份验证方法登录时,我创建一个标准身份验证cookie,将用户ID和身份验证服务添加到cookie的UserData。

现在,我希望用户在关闭浏览器后能够保持登录状态,无论用户使用哪种服务登录。对此我的意思是,如果用户再次打开该站点,他会赢得必须再次在该网站上授权Twitter。 现在,使用cookie的方法,MVC从cookie加载用户信息,用户似乎登录时,他进入网站,正是我想要的。

问题是,如果用户撤消我网站的访问权限,则用户的身份验证Cookie仍然有效,并且用户将显示为已登录状态,即使我的网站授权已被吊销。

我的问题是,有没有一种方法来验证授权在MVC加载授权cookie中的信息?我知道我可以使用一个自定义的AuthorizeAttribute并在AuthorizeCore方法上对其进行验证,但只有在用户访问需要验证的ActionMethod时才会调用它。

感谢您的帮助。

回答