关于 claim 我有两个问题:

1)在.Net 4.5和MVC 5中,当您在 Controller AuthorizeAttirubte上进行设置时,Microsoft如何实现授权化,它是否检查数据库以获取用户角色?还是使用 claim ?

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

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

还是过时了,现在Microsoft在 claim 中使用角色?

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

想象一下,当用户登录时,我将其显示名称设置为声明。用户具有更改其显示名称的能力,因此可以对其进行更改,但是他仍然可以看到他的旧显示名称,直到他重新分配到网站中为止。

以某种方式更新 claim ...是正确的吗?以及如何做?

最佳答案

  • authorize属性正在使用User.Identity之外的东西,例如IsAuthenticated / IsUserInRole,它间接查看声明。数据库访问基于刷新登录Cookie的时间(而不是授权检查),因此它是正交的。
  • 声明在生成登录cookie(数据库命中)时更新。要强制更新版权声明,您只需退出用户即可强制更新。
  • 关于.net-4.5 - MVC 5当前 claim 授权和更新 claim ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21411605/

    10-10 00:09