我正在使用授权的控制器操作,其中一些操作是基于角色的。
[Authorize(Roles = "SuperUsers")]
public class UserGroupController : ApiController
{
private readonly MyContext context = new MyContext();
[HttpGet]
public async Task<IHttpActionResult> Get()
{
.......
}
}当我想使用这个控制器时,我的请求返回401条未经授权的消息。
因此,我创建了一个Authrization属性来禁用它,如下所示:
public class DevelopmentAuthorizationFilter:AuthorizeAttribute
{
protected override bool IsAuthorized(HttpActionContext actionContext)
{
return actionContext.Request.RequestUri.IsLoopback || base.IsAuthorized(actionContext);
}
}我把它添加到了HttpConfiguration过滤器中。
public void Configuration(IAppBuilder app)
{
var configuration = new HttpConfiguration();
.............
configuration.Filters.Add(new DevelopmentAuthorizationFilter());
}但它不起作用。我该如何解决这个问题呢?
发布于 2017-11-08 04:39:53
您对控制器应用了两个授权过滤器。全局级别的DevelopmentAuthorizationFilter (已传递)和控制器级别的AuthorizeAttribute (未传递)。因此,只在控制器级别使用DevelopmentAuthorizationFilter就可以解决这个问题。
[DevelopmentAuthorizationFilter(Roles = "SuperUsers")]
public class UserGroupController : ApiController
{
}https://stackoverflow.com/questions/47153586
复制相似问题