.Netcore 默认Server 是Kestrel, 这是跨平台的,与Windows 认证无关。
新建.Netcore Webapi项目,选择Windows 认证,这样的项目,https 能直接打开的。
在Controller上加 [Authorize]
部署到IIS 上,需要配置develop 证书。
IIS 安装,需要勾选Windows 认证。
发布 之前,添加web.config:
<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <security> <authentication> <anonymousAuthentication enabled="false" /> <windowsAuthentication enabled="true" /> </authentication> </security> </system.webServer> </location> </configuration>
发布之后 如果500.19 参考这个 https://www.cnblogs.com/jxxy2012nw/p/5629225.html
%windir%system32inetsrvappcmd unlock config -section:system.webServer/security/authentication/anonymousAuthentication Unlocked section "system.webServer/security/authentication/anonymousAuthentication" at configuration path "MACHINE/WEBROOT/APPHOST". %windir%system32inetsrvappcmd unlock config -section:system.webServer/security/authentication/windowsAuthentication
发布之后,如果不指定进程内,或进程外,默认是进程外,会 在响应头上有
Content-Type: application/json; charset=utf-8 Date: Tue, 04 Aug 2020 08:51:51 GMT Persistent-Auth: true Server: Kestrel Transfer-Encoding: chunked X-Powered-By: ASP.NET
指定 进程内:
Server: Microsoft-IIS/10.0 WWW-Authenticate: Negotiate oRswGaADCgEAoxIEEAEAAABz5p6ZgZgwTQAAAAA= X-Powered-By: ASP.NET
在VS2019 调试的时候,可以选择IIS 调试和 Application 调试。
在Windows认证的项目中,只能用IIS 调试,这里启动的是IIS Express. IIS Express需要配置为Windows认证。
在Web宿主项目中的 .vs/config ,有名为applicationhost.config配置文件,打开它后,修改相关配置