我想为进程添加一个自定义步骤,当请求遇到[Authorize]属性时会发生这种情况。我宁愿不使用自定义版本的authorize属性重新编写我的所有操作。
我希望有类似的东西:
Global.OnAuthorize += () => { /*do stuff*/ };
答案 0 :(得分:2)
如果您使用的是FormsAuthentication,则可能需要向Global.asax添加一个名为FormsAuthentication_OnAuthenticate
的方法,该方法用作FormAuthentication EventHandler。
为Forms定义FormsAuthenticationEventHandler委托 验证FormsAuthenticationModule类的事件。您可以 访问FormsAuthenticationModule类的Authenticate事件 通过在中指定名为FormsAuthentication_OnAuthenticate的子例程 ASP.NET应用程序的Global.asax文件。认证 在AuthenticateRequest事件期间引发事件。
在AuthenticateRequest期间引发AuthenticateEvent
AuthenticateRequest事件表示已配置 身份验证机制已验证当前请求。 订阅AuthenticateRequest事件可确保请求 将在处理附加的模块或事件之前进行身份验证 处理
public void FormsAuthentication_OnAuthenticate(
Object sender, FormsAuthenticationEventArgs e)
{
}
希望这会有所帮助:)
答案 1 :(得分:1)
我宁愿不使用自定义版本的authorize属性重新制作我的所有操作。
您可以全局应用自定义授权属性。
GlobalFilters.Filters.Add(new MyCustomAuthorizationAttribute());
之后,您可以使用 AllowAnonymous 属性来装饰您想要未经授权使用的操作或控制器。