我有一个自定义 AuthorizeAttribute:
public class MyAuthAttribute:AuthorizeAttribute {
protected override bool AuthorizeCore(HttpContextBase httpContext) {
return CurrentUser.Roles.Contains(this.Roles);
}
}
现在return Currentuser.Roles
效果很好。如果返回 false,浏览器会显示 401。
但我想添加额外的信息,如所要求的角色。因此,我会自己抛出异常,而不是 return:
throw new httpException(401,string.Format("User should have been in one of the following roles: {0}",this.Roles);
可以在 AuthorizeAttribute 中抛出 401-Exception 而不是只返回 false 吗?还是有其他(更好的)方法可以将该信息发送到浏览器?