This page介绍了如何使用[Authorize]
属性限制对经过身份验证或授权用户的控制器和操作的访问。
通过设置Thread.CurrentPrincipal
来完成身份验证,然后允许访问受限制的控制器/操作,前提是用户具有任何所需的角色。
当遵循这个方法时,是否需要为每个请求设置Thread.CurrentPrincipal
(例如在消息处理程序中),或者Web API是否有某种方法在请求之间维护该主体? (据我所知,Web API是无状态的,没有会话,但我只是在检查。)
此外,如果在会话之间没有维护当前主体,那么[Authorize]
属性在编写自己的自定义访问控制方案方面有什么优势呢?
答案 0 :(得分:0)
您是正确的,因为服务器是无状态的,因此需要为消息处理程序中的每个请求设置Thread.CurrentPrincipal
。
授权属性的一些好处
[AllowAnonymousAttribute]
禁用操作授权