我正在尝试将Windows身份验证添加到新的asp.net core 2.2版本网站。创建网站`1)时,我已将身份验证模式更改为“ Windows身份验证”。在launchsettings.json中验证
"windowsAuthentication" = true, "AnonymousAuthentication": false,
2)将以下行添加到ConfigServices下的Startup.cs文件中。
services.AddAuthentication(IISDefaults.AuthenticationScheme);
3)我当前正在本地运行,因此在本地计算机中,启用->打开或关闭Windows功能-> Internet信息服务->安全性->“ Windows身份验证”
问题在本地系统上:1)不显示弹出窗口来输入用户名和密码 2)我需要显示Windows用户名和目录详细信息(部门,例如:IT,基于用户名的销售部门) 如何实现。 任何建议都会有所帮助。
答案 0 :(得分:1)
1)不显示弹出窗口来输入用户名和密码
如果使用IIS托管Web应用程序,则应使用IIS管理控制台启用Windows身份验证,或修改web.config文件。
据我所知launchsettings.json
具有以下功能:
这意味着Windows身份验证设置在部署后将不会在IIS中启用。您应该使用IIS管理控制台启用它。
打开身份验证:
禁用匿名身份验证并启用Windows身份验证
或者您可以在web.config中添加以下设置
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
如果要使用kestrel而不是IIS来承载应用程序,则应在应用程序中使用HTTP.SYS。有关如何使用它的更多详细信息,您可以参考此article。
2)我需要显示Windows用户名和目录详细信息(部门,例如:IT,基于用户名的销售部门)
如果要获取用户名,建议您尝试使用User.Identity.Name
。
如果您想获得当前用户的部门,建议您尝试使用此solution。