如何解决Windows授权可以在IIS Express上进行调试,但不能在IIS服务器上进行
我一直在努力解决ASP.Net Core 3.1中似乎是配置错误或错误的问题。我试图接收Windows身份验证用户,并检查该用户是否在appsettings.json中指定的AD组中。在本地运行IIS Express的调试模式下,一切正常。用户通过身份验证,并且对AD组的检查成功。
我将此项目发布到一个文件夹中,然后将其复制到与域连接的内部IIS服务器中。我已为Windows身份验证配置了IIS服务器(Windows Server 2016 / IIS版本10),并禁用了匿名身份验证。当我尝试导航到应用程序时,出现以下错误...
参考以下代码:
public class ClaimsLoader{
public static string Role { get; set; }
public static bool IsInGroup(ClaimsPrincipal User,string GroupName)
{
bool check = false;
var user = (WindowsIdentity)User.Identity;
if (user.Groups != null)
{
foreach (var group in user.Groups)
{
check = group.Translate(typeof(NTAccount)).ToString().Contains(GroupName);
if (check)
break;
}
}
return check;
} }
引用此的控制器是:
if (ClaimsLoader.IsInGroup(User,_config.GetValue<string>("Admin"))){
ClaimsLoader.Role = "Administrator";
}
else if (ClaimsLoader.IsInGroup(User,_config.GetValue<string>("Modify")))
{
ClaimsLoader.Role = "Modify";
}
else
{
ClaimsLoader.Role = "";
}
根据我已阅读的文章,这是实现此目的的方法。大多数人都引用.net core 2.0,因此版本之间是否有所更改,从而使此版本过时了?我感到非常沮丧的是,这在具有Windows身份验证的IIS Express上有效,但在IIS上无效。
这是我在这里的第一篇文章,因此,如果我错过了一些必要的信息,请告诉我。
编辑: 这是IIS中的Windows身份验证设置。 IIS Windows Authentication IIS Windows Auth Providers
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。