我的问题类似于Postman Windows Authentication (NTLM) not working但到目前为止还没有答案。
我使用了 .NetCore rest api (netcoreapp3.1)。
在launchsettings.json
{ "iisSettings": { "windowsAuthentication": true, "anonymousAuthentication": false, .. }
启动.cs
public void ConfigureServices(IServiceCollection services) { services.AddAuthentication(IISDefaults.AuthenticationScheme); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { //... app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthentication(); app.UseAuthorization(); //....useEndpoints middleware is being called afterwards }
员工控制器.cs
[Route("IISDetails")] [HttpGet] public IActionResult IISDetails() { var name = User.Identity.Name; return new ContentResult() { Content = $@"IIS authorized. AD: {name}" }; }
我没有使用 [Authorize] 标签,所以至少我可以看到这是否有效,但 Name 始终为空。
邮递员我在授权选项卡中设置用户名。附上图片供参考。
如果我将 Authorize 属性添加到我的 IISDetails 函数中,它会给我
System.InvalidOperationException:未指定 authenticationScheme,也未找到 DefaultChallengeScheme。