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