繁体   English   中英

在 .NET 核心中使用带有 WebAPI 的 kerberos 身份验证

[英]Using kerberos authentication with WebAPI in .NET core

我已经构建了一个由 IIS 托管的 .net 核心应用程序,并且我想强制某个 API 端点仅使用协商身份验证。

所以我尝试将以下内容添加到 web.config 中:

  <location path="~/api/v1/authentication/sso">
    <system.webServer>
      <security>
        <authentication>
          <anonymousAuthentication enabled="false" />
          <windowsAuthentication enabled="true" />
        </authentication>
      </security>
    </system.webServer>
  </location>

但是当我打开 url 时,没有发生身份验证,我只是从服务器收到 200 响应。

您可以使用内置的 asp.net 核心身份验证属性。

设置以下内容以在每个 Controller 上获得授权

 services.AddMvc(options =>
            {
                var policy = new AuthorizationPolicyBuilder()
                    .RequireAuthenticatedUser()
                    .Build();
                options.Filters.Add(new AuthorizeFilter(policy));
            })

并在不需要的地方使用 [AllowAnonymous]。

有关更多详细信息,您可以参考以下文章:

ASP.NET内核中的授权介绍

ASP.NET内核中的简单授权

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM