gpt4 book ai didi

asp.net-mvc - HttpContext.Current.User.IsInRole(roleName) 始终返回 false

转载 作者:行者123 更新时间:2023-12-02 01:37:28 27 4
gpt4 key购买 nike

我正在努力向 ASP.NET MVC 应用程序添加授权,但遇到了障碍。我终于能够连接我们的自定义成员(member)资格提供商并为该应用程序进行身份验证。现在,正如预期的那样,如果我将 [Authorize] 属性添加到我的 Controller ,则必须对用户进行身份验证才能查看该页面。我还成功测试了 [Authorize(Users="{userName}")],它也可以将页面限制为该特定用户。

问题是 [Authorize(Roles="{RoleName}")] 似乎没有按照我的预期工作。如果我将该属性添加到 Controller ,则每当我尝试访问相应页面时,我都会被重定向到我们的登录页面。如果用户没有所需的角色,我希望会发生这种情况,但即使用户具有该角色,也会发生这种情况。我已经检查了 View 、 Controller 和辅助方法中的 User.IsInRole("{roleName}") 和 HttpContext.Current.User.IsInRole("{roleName}") ,并且始终返回“False”。

我已验证与我合作的用户是否具有我尝试授权的角色。我还在 WebForms 应用程序中测试了这些用户,该应用程序限制相同角色的页面访问,并且工作正常。我认为我在某个地方设置错误或者遗漏了一些简单的东西,但是经过整个早上的搜索,我还没有找到任何能让我更接近解决方案的东西,所以我希望这里有人可以帮助我。

最佳答案

首先:使用分析器并在执行 HttpContext.Current.User.IsInRole("{roleName}") 行时检查 sql 查询是什么。

如果它没有进行查询,那么您可能有cacheRolesInCookie =“true”,并且IsInRole将检查FormsAuthenticationTicket中的UserData。确保在创建 FormsAuthenticationTicket 时将 userdata 参数设置为包含用户角色的逗号分隔字符串。

关于asp.net-mvc - HttpContext.Current.User.IsInRole(roleName) 始终返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1278441/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com