C# 如何在MVC上的ActionFilterAttribute中知道当前操作是否通过授权?
正如您所知,如果我们想要授权,我们可以重写AuthorizeAttribute,但目前我想知道当前操作是否在ActionFilterAttribute中通过授权 例如:这是用于授权:C# 如何在MVC上的ActionFilterAttribute中知道当前操作是否通过授权?,c#,asp.net,.net,asp.net-mvc,C#,Asp.net,.net,Asp.net Mvc,正如您所知,如果我们想要授权,我们可以重写AuthorizeAttribute,但目前我想知道当前操作是否在ActionFilterAttribute中通过授权 例如:这是用于授权: public class AdminAuthorizeAttribute : AuthorizeAttribute { public override void OnAuthorization(AuthorizationContext filterContext) { //
public class AdminAuthorizeAttribute : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
// if authorize then continue, or else redirection the action to some page for some user
}
}
这是访问日志,这是我想知道当前请求是否被授权的地方
public class LoggerFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// before save the access log, I want to know current request is authorized or not, then I can write the authorize status to the access log/
}
}
更新1:
我不使用默认用户身份或角色。
我正在从数据库和会话中使用自己的autrize角色。
例如:
public class AdminAuthorizeAttribute : AuthorizeAttribute
{
public string ActionName {get; set;}
public override void OnAuthorization(AuthorizationContext filterContext)
{
if (null == GetSession("AdminNo"))
{
// Authorized failed. redirect
}
if (null == GetSession("RoleName")
{
// Authorized failed. redirect
}
else{
if (!GetSession("ActionInRole").include(ActionName))
{
// Authorized failed. redirect
}
}
// Authorized success.
}
}