首页 > 解决方案 > 使用 Active Directory 在 ASP.NET Core API WebService 中进行身份验证

问题描述

我想为一组 Intranet 桌面应用程序提供 WebService API。

目前我的网络服务配置(launchSettings.json)是:

"windowsAuthentication": true, 
"anonymousAuthentication": false

这种方法在 Startup 类中需要这行代码:

services.AddAuthentication(IISDefaults.AuthenticationScheme);

当我测试它时,浏览器(在我的例子中是 Firefox)调用默认控制器。然后我收到一个提示,询问已经登录的活动目录用户的用户名和密码。成功登录后,我可以在我的控制器类中看到用户名及其状态:

var isAuthenticated = User.Identity.IsAuthenticated;
var userName = User.Identity.Name;

但正如已经指出的:它已经登录到这台 Windows 机器的当前用户,我可以转发此信息以避免此登录提示吗?

在测试阶段输入这些信息并不是什么大问题,但我猜当其他类型的客户端(我的自定义桌面应用程序)尝试使用这个 WebServices 时,他们还需要以用户获得授权的方式调用 WebServices。

请考虑一下我开始使用 asp.net、core 和 webservices 技术,所以如果您需要更多信息,请告诉我:D

标签: apiweb-servicesasp.net-core

解决方案


Firefox 不支持自动登录。只有 Chrome 和 IE/Edge 可以。


推荐阅读