登录当用户登录到我的网站,当用户验证我有一个覆盖ValidateUser
和验证用户具有足够的权限等净会员提供商,通过永久性Cookie
然而自定义成员资格提供,当通过使用RememberMeSet
的默认表单身份验证实现'记住我'功能时,我还想要验证第一个请求上的用户。
当用户使用持久cookie登录时,是否有一些钩子可以附加到该触发器上?
登录当用户登录到我的网站,当用户验证我有一个覆盖ValidateUser
和验证用户具有足够的权限等净会员提供商,通过永久性Cookie
然而自定义成员资格提供,当通过使用RememberMeSet
的默认表单身份验证实现'记住我'功能时,我还想要验证第一个请求上的用户。
当用户使用持久cookie登录时,是否有一些钩子可以附加到该触发器上?
解决方法:
UserIsVerified
什么true
通过默认loginpage登录时(或通过对等单点登录)Application_PreRequestHandlerExecute
在global.asax中验证UserIsVerified
支柱是否已设置,如果没有:执行相应检查为什么Application_PreRequestHandlerExecute?
On PreRequest会话和配置文件都可用。 .Net已经解释了持久性cookie,因此你可能想要的每个信息都在那里。当用户检查失败时,您也可以执行重定向,因为我们在请求周期中。它也发生在任何用户代码被执行之前,所以afaik在这里执行以防止类似的行为是相当安全的。
如果处理程序中的身份验证失败,我重定向到注销页面并让.Net处理所有其他事情。
我想你要找的是HttpModule中的AuthenticateRequest事件。在这个事件处理程序中,您可以检查cookie并验证凭据,然后设置HttpContext.Current.User来授权用户。
您只需拨打Membership.GetUser()
即可返回当前登录用户的MembershipUser
实例。如果您的用户上次使用“记住我”登录,导致持久性验证。客户端上的Cookie,您的MembershipProvider会自动告诉您用户是否已从[持久cookie]登录。 从持久性验证cookie验证用户不需要额外的努力。
您可以工作出你的额外钩上由该方法返回Membership.GetUser()
例如MembershipUser
和检查,如果他授权执行任务。如果用户未被发现登录,该方法将简单地返回null
。
不是。我不想自己做任何cookie,因为.Net可以处理所有这些。 – 2010-06-30 09:37:38