【发布时间】:2015-05-31 11:16:49
【问题描述】:
剃刀布局视图中的@Roles.GetRolesForUser() 未返回角色。 @Roles.GetRolesForUser().Count() 为 0。
而@Roles.IsUserInRole('name_of_logged_in_role') 在同一位置的同一视图中返回true。
剃刀视图:
<p>
@User.Identity.Name //Output: MyName
@Roles.GetRolesForUser().Count() //Output: 0
@Roles.IsUserInRole("Radiologist") //Output: True
</p>
更新
@Roles.GetRolesForUser(User.Identity.Name).Length //Output: 0
@Roles.GetRolesForUser(User.Identity.GetUserName()).Length //Output: 0
【问题讨论】:
-
您是否在执行此布局之前更改角色?如果是这样,您可能会遇到用于 GetRolesForUser 的 cookie 角色缓存的问题。请参阅此处的 CacheRolesInCookie 部分:msdn.microsoft.com/en-us/library/8ak75t41(v=vs.110).aspx
-
如果你这样做
GetRolesForUser(username here),它会给你同样的结果吗? -
@stephen.vakil 不,我不会改变角色。即使我在私人窗口中进行操作也保持不变。
-
@imGreg 是的,查看更新
标签: asp.net asp.net-mvc asp.net-identity asp.net-identity-2