Active Directory 子域中的 LDAP 身份验证

问题描述 投票:0回答:1

在我的 asp net mvc 项目中,我使用 ldap 进行身份验证和授权。

我有一个名为 op.sep.net 的子域,它是 sep.net 的子域。 所有需要验证的用户都在根域 sep.net 中定义,但组在子域中定义

这是我在 web.config 文件中的连接字符串:

<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
  <providers>
    <clear />
  <add name="AspNetActiveDirectoryMembershipProvider"
  connectionStringName="ADService"
  attributeMapUsername="sAMAccountName"
  connectionUsername="sep\at.rahimi"
  connectionPassword="1qaz!QAZ"
  connectionProtection="None" enablePasswordReset="false"
  enableSearchMethods="true" type="System.Web.Security.ActiveDirectoryMembershipProvider" />
  </providers>
</membership>

以及连接字符串部分:

 <connectionStrings>

<add name="ADService" connectionString="LDAP://OP-DC.op.sep.net/dc=op-dc,dc=op,dc=sep,dc=net" />

正如我提到的,用户 at.rahimi 位于 sep 域中

我的问题是,如果我使用 LDAP://OP-DC.op.sep.net 作为服务器,我会得到“用户名或密码不正确”并且无法进行身份验证,但是如果我使用 LDAP://sep .net 我可以进行身份验证,但我看不到子域中的那些角色

System.Web.Security.Roles.GetRolesForUser("at.rahimi")
我只能在 sep.net 中看到角色

如果有人能帮助我,我将非常感谢。

c# active-directory ldap
1个回答
0
投票

如果用C#连接LDAP,可以使用Directory Entry类来处理从下层到根域的认证。 如果将 PATH 路径指定为 Schema,则可以将帐户从子域导入到根域,也可以通过导入 PATH 路径并使用 PATH 来覆盖您正在查看的 BASEDN 信息。家长。

© www.soinside.com 2019 - 2024. All rights reserved.