c# - 如何由活动目录中的任何用户登录(无密码)
问题描述
我的主要目标是为管理员创建任何用户登录的后门。
我使用核心 API 和 Active Directory 身份验证并使用 LDAP。
services.AddLdap(Configuration);
app.UseLdapAuthentication(Configuration);
它工作正常。
现在我需要为管理员添加任何用户登录的功能。当然,管理员不知道密码。
我确实连接
_connection.Connect(_config.Url, LdapConnection.DEFAULT_PORT);
并在我必须知道密码的地方绑定。
_connection.Bind(username, password);
我使用基于 cookie 的身份验证。
我找不到办法做到这一点。
解决方案
我使用基于 cookie 的身份验证。
如果您使用的是基于 cookie 的身份验证,那么您不需要让 AD 参与您的模拟。
我认为这是您的身份验证通常的工作方式:
- 用户输入用户名和密码。
- 您的应用程序通过 LDAP 验证凭据。
- 您的应用程序为用户发出一个 cookie。
如果您想允许管理员在您的应用程序中模拟其他任何人,请创建一个页面,管理员可以在其中查看所有用户帐户并选择要模拟的帐户。然后应用程序只为该用户帐户发出一个 cookie。
所以它会是这样的:
- 管理员用户输入他们自己的用户名和密码。
- 您的应用程序通过 LDAP 验证凭据并验证用户是管理员。
- 您的应用程序为用户自己的帐户发出 cookie。
- 管理员用户转到“用户”页面并选择要模拟的帐户。
- 您的应用程序为所选用户发出一个新的 cookie。
我在我们的一个应用程序中做了这件事。
推荐阅读
- php - php如何防止多个用户同时登录?
- r - 我怎样才能获得夏皮罗威尔克测试
- javascript - 如何使用谷歌脚本替换字符串中的所有字符?
- python - 带有 for 循环的 Def 函数给出错误为“'int' 类型的对象没有 len()”,'发生在索引 0'
- php - 如何在ajax中解析json字符串
- python - 将张量流变量连接成一个张量
- office-js - Office 插件——如何在某些平台上提供功能,但在其他平台上不提供?
- python - Pandas DataFrame:根据多个条件填充 NaN 值
- vue.js - 如何在 vuetify 中初始化插槽的变量
- django - 每次运行代码时我都会收到以下错误,但我不知道出了什么问题