Asp.net mvc 4 本地用户和组MVC Intranet应用程序

Asp.net mvc 4 本地用户和组MVC Intranet应用程序,asp.net-mvc-4,asp.net-mvc-5,Asp.net Mvc 4,Asp.net Mvc 5,我在Web.Config中使用以下定义 <system.web> <authentication mode="Windows"> </authentication> <authorization> <deny users="?"/> </authorization> <roleManager enabled="true" defaultProvider="AspN

我在Web.Config中使用以下定义

  <system.web>
    <authentication mode="Windows">
    </authentication>
    <authorization>
      <deny users="?"/>
    </authorization>
    <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
      <providers>
        <clear />
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
      </providers>
    </roleManager>
</system.web>

我添加了一个新组,并使我的登录名成为该组的成员。然后,当我查询System.Web.Security.Roles.GetRolesForUser()时,我在结果中没有看到该组

我正在使用“本地用户和组”对话框

第二个问题,如何获取当前用户所属的所有组的名称和说明


谢谢,

您好,您的DNS可能尚未更新。您可以通过转到服务重新启动dns服务,也可以简单地注销并重新登录以获取更新。试试看,这应该管用:)

关于你的第二个问题,以下是答案:

你能行
Roles.GetRolesForUser()并返回用户的角色数组。

这就是我使用的Roles.GetRolesForUser()。它不会返回我手动创建的任何人。您是否已注销并重新登录?或者你重新启动了你的DNS?重新启动了…但是现在我更担心了。这否定了用户可以随时添加/删除,并且RoleProvider不会查询窗口的事实。这实际上取决于active directory的设置方式,您可以设置服务器以尽可能频繁地执行组策略更新。您甚至可以通过运行此命令(gpupdate/force)强制更新策略。你可以在这里阅读更多内容()