我的主要目标是为管理员创建任何用户的后门登录。
我使用核心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
我在我们的一个应用程序中做了这件事。