Van*_*nel 2 asp.net asp.net-mvc active-directory windows-authentication asp.net-web-api
我正在使用 C# 和 .NET Framework 4.5.1 开发带有 Web Api 服务的 ASP.NET MVC 5 应用程序。
我已经启用<authentication mode="Windows" />的Web.config,并添加对ASP.NET MVC控制器的情况如下:
[Authorize(Roles = @"MyDomain\MyRole")]
public class ReportController : Controller
Run Code Online (Sandbox Code Playgroud)
但我不需要 Windows 身份验证ApiController。如何启用对ApiControllers 的匿名访问?
要为 webapi 执行此操作,您可以在 Web.Config 中使用以下内容
<location path="api">
<system.web>
<authorization>
<allow users="?"/>
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
这就是说对于 api 控制器,允许任何用户(用 ? 表示)。如果您想做特定的控制器,可能值得将其更改为更具体。
它还假设您拒绝访问所有匿名用户,并且您的 web.config 身份验证是这样的
<system.web> <authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization> </system.web>
Run Code Online (Sandbox Code Playgroud)
但是,如果您想在 MVC 控制器上允许它,您可以使用 [AllowAnonymous]属性。
相关: 当整个应用程序使用 Windows Authenticaion 时,在单个控制器上使用 MVC4 中的匿名身份验证
ASP.NET MVC 4 的 Windows 身份验证 - 它是如何工作的,如何测试它
补充阅读:
| 归档时间: |
|
| 查看次数: |
3174 次 |
| 最近记录: |