3

我对索赔有 2 个问题:

1)在.Net 4.5和MVC 5中,微软如何实现自动化,当您在控制器上设置AuthorizeAttirubte时,它是否检查数据库以获取用户角色?或者它使用声明?

我在某处读过微软每次都使用数据库来验证角色,他们建议编写一个新的 AuthorizeAttribute 来实现声明身份验证。

这是我正在谈论的文章:http: //kevin-junghans.blogspot.be/2013/10/improving-performance-of.html

还是它已经过时了,现在微软在声明中使用了这些角色?

2)关于索赔更新的第二个问题:

想象一下,当用户登录时,我将他的显示名称设置为声明。用户可以更改他的显示名称,因此他更改了它,但他仍然看到他的旧显示名称,直到他在网站上重新签名。

以某种方式更新声明是否正确......?怎么做?

4

1 回答 1

4
  1. 授权属性使用 User.Identity 之外的东西,例如 IsAuthenticated/IsUserInRole,它间接查看声明。数据库访问基于登录 cookie 的刷新时间,而不是授权检查,因此它是正交的。
  2. 生成登录 cookie 时更新声明(数据库命中)。要强制更新声明,您只需退出强制更新的用户即可。
于 2014-01-28T17:48:26.183 回答