首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >User.IsInRole不工作

User.IsInRole不工作
EN

Stack Overflow用户
提问于 2013-03-22 17:55:33
回答 18查看 39.4K关注 0票数 27

我有ASP.NET的MVC4应用程序。我使用简单的会员提供程序,允许勾选登录表单下的“记住我”复选框。如果勾选,将创建自登录日期起100天后过期的永久cookie .ASPXAUTH。除了应用程序的主菜单之外,一切都运行正常。

菜单的某些部分仅对管理员用户可用。我使用:

代码语言:javascript
复制
@if (User.IsInRole("Administrator")) { @Html.Partial("_MainMenuPartial") }

锁定它们,使其不能为普通用户呈现。此方法在登录到系统后即可正常工作。当我在一段时间后返回,并且使用持久性cookie对我进行身份验证时,我确实会登录,但是

代码语言:javascript
复制
@User.IsInRole("Administrator")

返回"False“,因此我看不到管理菜单项。在同一时间

代码语言:javascript
复制
@User.Identity.Name

返回正确的登录名和

代码语言:javascript
复制
@User.Identity.IsAuthenticated

返回"True",证明持久化cookie工作正常。为什么我不能访问用户角色,即使用户已经通过系统验证?

EN

回答 18

Stack Overflow用户

发布于 2014-10-30 22:05:35

我有个笑脸问题。在我的例子中,当我注销并重新登录时,问题就解决了。

票数 25
EN

Stack Overflow用户

发布于 2015-07-10 02:54:31

在MVC5中使用角色时出现问题

我找到了一个解决方案。在我的web.config中:

代码语言:javascript
复制
<modules>
    <remove name="FormsAuthenticationModule" />
    <remove name="RoleManager" />
</modules>

我添加了remove name="RoleManager“行,新的AspNet.Identity代码接管了我的工作,允许我使用User.IsInRole(..)

http://forums.asp.net/t/1952572.aspx?Problem+using+roles+with+MVC5

票数 21
EN

Stack Overflow用户

发布于 2016-05-24 19:06:59

老问题,但这里有一些缺失的信息。我遇到了同样的问题,有一件事要牢记在心。如果你在认证之后测试用户身份(如User.IsInRole("admin")) (而不向客户端发送响应),身份框架还没有填充这个会话信息(或者至少,我找不到这样做的方法)。你请求的这些信息会在你的控制器返回后的某一时刻被填充。如果你愿意(也就是)要在登录后根据用户角色重定向到不同的视图,您必须使用自定义授权筛选器。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15567338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档