【问题标题】:IIS Windows and Anonymous AuthenticationIIS Windows 和匿名身份验证
【发布时间】:2020-12-21 12:18:50
【问题描述】:

我有一个在 IIS 服务器上运行的 Asp Core 页面。到目前为止,我使用 Windows 身份验证 (NTLM) 对用户进行身份验证。现在我想将网站的一部分用作 Android 应用程序的 Api。这部分需要匿名身份验证,但如果我为整个站点启用它,将不再要求 Windows 用户提供他们的凭据。
有没有办法只为某些页面启用匿名身份验证,分别为站点结构中的路径启用?

【问题讨论】:

  • 在站点级别,它始终是匿名或 Windows 身份验证,您不能同时拥有这两者。为了节省您的时间,请为您的 Android 客户端设置一个匿名网站。
  • 我不敢这样做,但是谢谢。

标签: asp.net asp.net-core authentication iis windows-authentication


【解决方案1】:

我通过将 [Authorize] 放在需要对用户进行身份验证的控制器的方法之上来做到这一点。没有标签的不需要身份验证,并且可以很好地与 IIS 匿名访问配合使用。

注意:还有一个“AllowAnonymous”属性(src:https://docs.microsoft.com/en-us/aspnet/core/security/authorization/introduction?view=aspnetcore-3.1#namespaces

注意 2:您可以自定义 [Authorize] 属性以使用特定的身份验证方案,如 here 所示。

【讨论】:

  • 这不起作用。服务器在应用程序进行自己的授权之前要求提供 Windows 凭据。如果我在服务器上为整个站点启用匿名并将标签放到特定页面,它不会要求 Windows 凭据,但也会阻止访问。
  • 在我这边,它在 IIS 上启用了匿名和 Windows 身份验证。这篇文章详细描述了它:levelup.gitconnected.com/… 你可能会错过类似 'services.AddAuthentication(IISDefaults.AuthenticationScheme); 的东西。 ' ?
猜你喜欢
  • 2019-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多