api - 使用 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
解决方案
Firefox 不支持自动登录。只有 Chrome 和 IE/Edge 可以。
推荐阅读
- gnuplot - 如何使用 gnuplot 展平图表及其 pdf 文件?
- python - 基于多列python的join
- php - 将 2 个对象数组合并为 1 个数组
- javascript - 实时搜索ajax多输入
- html - 如何在 divi WordPress 主题中使用 html/css 在文本后面/下方添加行
- plot - 我们如何一起使用 Dask 和 Datashader?
- asp.net-core - 如何将 Aurelia.js 网站分成两部分
- java - 在没有调试器的情况下控制 java 程序的执行
- c# - 获取 System.Data.OleDb.OleDbException:“没有为一个或多个必需参数提供值。” 使用 c# 从 Excel 工作表中读取数据时
- asp.net - 在 AspNet MVC 中显示用户全名而不是用户电子邮件