Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Windows身份验证中可用的角色_Asp.net Mvc_Windows Authentication - Fatal编程技术网

Asp.net mvc Windows身份验证中可用的角色

Asp.net mvc Windows身份验证中可用的角色,asp.net-mvc,windows-authentication,Asp.net Mvc,Windows Authentication,我正在尝试将角色身份验证添加到ASP.NET MVC应用程序中控制器中的操作中。代码如下所示: [Authorize(Roles = "SomeRoleName")] public ActionResult Index() { bool inRole = User.IsInRole("Admin"); 如果我删除Authorize属性并在代码示例的最后一行上放置一个断点,是否有办法检查对象并找出可用的角色 e、 g.我在即时窗口中调用User.IsInRole(“Admin”),它将给

我正在尝试将角色身份验证添加到ASP.NET MVC应用程序中控制器中的操作中。代码如下所示:

[Authorize(Roles = "SomeRoleName")]
public ActionResult Index()
{
    bool inRole = User.IsInRole("Admin");
如果我删除Authorize属性并在代码示例的最后一行上放置一个断点,是否有办法检查对象并找出可用的角色


e、 g.我在即时窗口中调用User.IsInRole(“Admin”),它将给我一个真/假值。我如何访问可用的角色集合?

您可以使用System.Web.Security.roles.Provider中RoleProvider类上的各种方法


更多信息请参见此:

我猜您在这里没有使用角色提供程序,而是使用WindowsPrincipal的底层功能,在该功能中角色映射到用户组。无论如何,我认为除了枚举该计算机/该域中可用的windows组之外,没有其他方法了。不确定这是否有帮助,但我只能这样做n在不知道如何使用所述角色列表的情况下说。

如果您不需要通过编程来执行此操作,但您正在尝试确定需要指定的正确Windows组/角色,则可以从命令行使用此命令:

C:\> net group /domain  (lists all Roles in the domain)
C:\> net user <username> /domain (lists info, including roles for a user)
C:\>net组/域(列出域中的所有角色)
C:\>net用户/域(列出信息,包括用户的角色)
否则,您将需要查询Active Directory的LDAP部分,或者使用DirectoryServices下的内容

请查看这些网站,通过C#访问Active Directory:


将其添加到system.web下的web.config中:

<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"/>
或:


您能否澄清您的问题,即您是在寻找分配给当前用户的角色,还是用户可能属于的所有可能角色?谢谢,这会非常快速地提供所有本地和域角色,例如BUILTIN\\Administrators组tooWell,“How to”链接现在会将我带到“中国日期”。以防其他人在h徘徊“Howto:(几乎)通过C#-Codeproject在Active Directory中的所有内容”的链接是:
string[] arr = Roles.GetRolesForUser(User.Identity.Name);
string[] arr = Roles.GetRolesForUser();