看来我使用了错误的设置。如果您想使用标准AD,请选择Windows身份验证。
“工作或学校帐户”似乎只适用于ADFS。
一旦您的应用程序初始化,请转至web.config。
你会看到这样的事情
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
<httpModules>
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>
</system.web>
我们需要在AD组的功能添加到我们的web.config。完成此操作后您的System.Web部分应该是这样的:
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
<!--NEW-->
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
<providers>
<clear />
<add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
</providers>
</roleManager>
<httpModules>
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>
</system.web>
现在,您可以用下面的来装饰你的控制器类/ action方法:
[授权(角色= @“您的域\一些广告组名称 “)]
或通常的代码:
User.IsInRole(@” 您的域\一些广告组名称“))