我想知道[Authorize]
属性如何识别该用户的身份?
如果用户有效,则我们调用FormsAuthentication.SetAuthCookie()
方法,根据MSDN,此方法为:
为提供的用户名创建身份验证票证,并将其添加到响应的cookie集合中;如果使用的是无cookie身份验证,则将其添加到URL。
[Authorize]属性是否检查身份验证票证或cookie收集?
[Authorize]
本身不涉及任何身份验证机制。它仅在用户中IIdentity
查找IsAuthenticated
标志。它还将在usersIsMemberOf
方法中查找基于角色的授权。
解码身份验证票证的所有工作都在应用程序管道的早期阶段完成,该阶段设置了这些标志。在调用Authorization Attribute方法时,所有工作已经完成,并存储在用户运行时数据中。
您可以轻松地检查Authorize属性的源代码,并且您会发现它本质上非常简单。它只是基于一些简单的查找而返回true或false。
它在.net核心中变得越来越复杂,因为它基于策略而并非基于策略,但是最初的MVC实现非常简单。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句