【问题标题】:How to disable windows authentication only for Web API inside a .net core MVC web application如何仅为 .net 核心 MVC Web 应用程序中的 Web API 禁用 Windows 身份验证
【发布时间】:2019-12-20 13:39:26
【问题描述】:

我有一个 .NET Core MVC Web 应用程序,并为该项目设置了 Windows 身份验证。 现在我在同一个项目中添加了一个 API 控制器,我不想对其进行身份验证。 是否可以仅为 API 禁用 Windows 身份验证? 我使用 Windows 身份验证创建应用程序的原因是只记录通过浏览器访问我的应用程序的当前用户详细信息。

【问题讨论】:

  • 这能回答你的问题吗? ASP.NET Core disable Windows Authentication
  • 我看过那篇帖子,但我的理解是他需要禁用整个应用程序的身份验证,而不仅仅是单独的 API。
  • 对不起,如果我的建议是不知情的,但你不能用 [AllowAnonymous] 装饰 API 控制器吗?
  • Allowanonymous 只会绕过授权但不会绕过身份验证..

标签: asp.net-core asp.net-core-mvc entity-framework-core


【解决方案1】:

花了几个小时后,我找到了以下解决方案: 在 launchsettings.json 中设置以下值

"iisSettings": {
"windowsAuthentication": true,
"anonymousAuthentication": true,

在 startup.cs ConfigureServices 中添加以下行

services.AddAuthentication(IISDefaults.AuthenticationScheme);

添加

[Authorize] 

控制器中我们需要获取用户名的属性 使用命名空间

(Microsoft.AspNetCore.Authorization)

因此,我无需授权即可访问 API,并且可以在 MVC 控制器中获取当前用户详细信息。

这个帮助我找到了解决方案:https://github.com/aspnet/AspNetCore/issues/2913

【讨论】:

    猜你喜欢
    • 2020-07-20
    • 2021-10-15
    • 2012-08-06
    • 2019-11-30
    • 2017-10-29
    • 2021-12-23
    • 1970-01-01
    • 2014-04-26
    • 2021-06-11
    相关资源
    最近更新 更多