我有一个ASP.NET核心应用程序,并且我使用Authorize属性修饰了我的constroller / actions。在Startup.cs中,我已经定义了这样的身份验证:
services.AddAuthentication(Microsoft.AspNetCore.Server.IISIntegration.IISDefaults.AuthenticationScheme);
当我在IIS或IIS Express中运行我的应用程序时,授权可以正常工作。但是,我想在不支持Windows身份验证的主机(如控制台应用程序)中运行时禁用授权。
我在考虑这样做:
services.AddMvc(options =>
{
if (!isWindowsAuthenticationSupported)
options.Filters.Add(new AllowAnonymousFilter());
});
如果这是正确的方法,我该如何设置isWindowsAuthenticationSupported变量?
答案 0 :(得分:0)
以下是确定是否支持Windows身份验证的代码:
string iisHttpAuth = Environment.GetEnvironmentVariable("ASPNETCORE_IIS_HTTPAUTH");
bool isWindowsAuthenticationSupported = false;
if (iisHttpAuth != null && iisHttpAuth.ToLowerInvariant().StartsWith("windows"))
isWindowsAuthenticationSupported = true;