确保Web API和Blazor Server应用程序都已经启用Windows身份验证。
在Web API控制器的方法上使用[Authorize]属性进行标记,以确保只有已经认证(通过Windows身份验证)的用户才能够调用方法。示例如下:
[ApiController] [Route("api/[controller]")] [Authorize] public class MyController : ControllerBase { // ... }
在Blazor Server应用程序中,在调用Web API的代码段中设置HttpClientHandler的UseDefaultCredentials属性为true,以便使用当前用户的Windows凭据进行身份验证。示例如下:
var handler = new HttpClientHandler { UseDefaultCredentials = true }; var client = new HttpClient(handler); var result = await client.GetAsync("https://localhost:5001/api/my");
如果仍然遇到401错误,请检查IIS中是否启用了Windows身份验证,并确保应用程序池的身份验证设置正确。