看来我没有很好地表达我的问题,所以我将其添加为补充标题:如何扩展 FormsAuthentication 类以便我可以覆盖配置文件中的默认行为(例如,将执行控制权传递给 MembershipProvider在新页面请求上更新 MembershipUser 的 LastActivity),如果失败了,用我自己的自定义类替换 FormsAuthentication 类的机制,并将其用作通常使用的 FormsAuthentication 类?
我们如何实现一个不那么可笑、更可扩展的 FormsAuthentication 框架,让我们能够集成到自定义的 MembershipProvider 中?有没有这方面的工作?最终,我想在我的 web.config 中加入如下内容:
<authentication mode="Forms">
<forms membershipProvider="MyCustomMembershipProvider">
<events>
<add event="AuthenticatedRequest" action="OnAuthRequest" />
<add event="UnAuthenticatedRequest" action="OnRequest" />
<add event="UnAuthorizedRequest" action="UnAuthRequest" />
</events>
</forms>
</authentication>
这不应该占用我所有的时间。表单身份验证在 ASP.NET 页面生命周期中似乎相当低级,但必须有一种方法可以彻底规避它。
这与自定义成员资格提供程序无关。我想在我的会员提供者类中实现一些东西,比如隐含的“IsOnline”和“LastActivity”功能,但是 FormsAuthentication 设置了 cookie 并且不会回头。我想在检查该 cookie 时注入我自己的代码,但我不能。除了把我自己的饼干放在上面之外,肯定还有别的办法。