【发布时间】:2017-05-12 20:27:23
【问题描述】:
我需要使用 Roles.GetUsersInRole(role) 方法来获取在事件发生时应该接收电子邮件的用户名。 我正在使用 Windows 身份验证。
在我的网络配置中:
<system.web>
<authentication mode="Windows" />
<identity impersonate="false" />
<roleManager enabled="true"
defaultProvider="AspNetWindowsTokenRoleProvider"/>
...
</system.web>
一切都编译得很好,但是当我调用该方法时,我得到了这个错误:
{"配置的角色提供程序(WindowsTokenRoleProvider)依赖Windows身份验证来确定允许用户加入的组。ASP.NET角色管理器不能用于管理Windows用户和组。请使用SQLRoleProvider如果您想支持自定义用户/角色分配。"}
这是配置问题吗? 我需要继续使用 Windows 身份验证,但是我还需要能够从组中获取用户名。
如果没有配置设置来完成此操作,是否有任何解决方法可以让我获得此功能?
谢谢
【问题讨论】:
-
是的,您可以使用 SQL Role Provider 授予对 Web 应用程序中 MVC 控制器的访问权限。您还可以使用返回布尔类型的 User.IsInRole 方法(字符串)显示/隐藏视图的各个部分。
标签: c# asp.net asp.net-mvc windows-authentication security-roles