【发布时间】:2013-03-21 23:48:35
【问题描述】:
我正在使用 ASP.NET Web API。而且我确实喜欢添加属性以指定对 API 控制器的访问级别的能力,如下所示:
[Authorize]
public IEnumerable<Activity> Get()
到目前为止一切都很好,但是当我使用角色时,这个概念就崩溃了。
[Authorize(Roles = "Manager")]
public IEnumerable<Activity> Get()
我的用户可能在不久前登录了系统,然后在某个时候他们点击了对他们“禁止”的资源。用户尝试再次登录是没有意义的。由于他们的合法帐户无权访问该 URL。但目前他们得到的是 401(未经授权)而不是 403(禁止),就好像他们用错误的帐户登录一样。但用户只有一个帐号,并不打算让用户申请属于其他人的帐号。
还有其他人处理过这个问题吗?有谁知道如何解决这一问题?我非常愿意编写代码来解决这个问题,但我目前不知道从哪里开始。
【问题讨论】:
标签: rest http authentication asp.net-web-api authorization