标签: activedirectorymembership

PrincipalContext.ValidateCredentials始终返回FALSE

我有一个MVC应用程序需要登录并验证用户对Active Directory.我正在使用该PrincipalContext.ValidateCredentials方法,但始终获得身份验证false.

连接到服务器很好.问题似乎发生在ValidateCredentials.

这是我的代码:

public static bool IsAuthenticated(string domain, string username, string pwd) {
    bool IsAuthenticated = false;

    try {
        PrincipalContext insPrincipalContext = 
            new PrincipalContext(ContextType.Domain, domain, "DC=c1w,DC=com");

        username = "c1w\\" + username;

        IsAuthenticated = insPrincipalContext.ValidateCredentials(username, pwd);
    }
    catch (Exception ex)
    {
        // Rethrow this exception
        ExceptionPolicy.HandleException(ex, "Exception Policy");
    }

    return IsAuthenticated;
}
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么会发生这种情况?

c# asp.net-mvc active-directory activedirectorymembership

15
推荐指数
2
解决办法
1万
查看次数

PrincipalContext没有连接

我正在尝试将PrincipalContext用于我正在开发的Web服务.我已经在不同的应用程序中的Web服务器上使用表单身份验证,它工作正常.

我收到的错误是:

System.DirectoryServices.AccountManagement.PrincipalServerDownException: The server could not be contacted. ---> System.DirectoryServices.Protocols.LdapException: The LDAP server is unavailable.
   at System.DirectoryServices.Protocols.LdapConnection.Connect()
   at System.DirectoryServices.Protocols.LdapConnection.SendRequestHelper(DirectoryRequest request, Int32& messageID)
   at System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest request, TimeSpan requestTimeout)
   at System.DirectoryServices.Protocols.LdapConnection.SendRequest(DirectoryRequest request)
   at System.DirectoryServices.AccountManagement.PrincipalContext.ReadServerConfig(String serverName, ServerProperties& properties)
   --- End of inner exception stack trace ---
   at System.DirectoryServices.AccountManagement.PrincipalContext.ReadServerConfig(String serverName, ServerProperties& properties)
   at System.DirectoryServices.AccountManagement.PrincipalContext.DoServerVerifyAndPropRetrieval()
   at System.DirectoryServices.AccountManagement.PrincipalContext..ctor(ContextType contextType, String name, String container, ContextOptions options, String userName, String password)
   at System.DirectoryServices.AccountManagement.PrincipalContext..ctor(ContextType contextType, String name, String container, String userName, String password)
   at webService.Service1.ValidUser(String sUserName) in E:\Development\CSharpApps\Desktop\OrgChart\webService\Service1.asmx.cs:line …
Run Code Online (Sandbox Code Playgroud)

c# asmx activedirectorymembership

14
推荐指数
1
解决办法
1万
查看次数

错误:仅支持Active Directory的LDAP连接字符串

我在Web.config文件中定义了以下ASP.NET Membership部分:

<membership defaultProvider="AspNetActiveDirectoryMembershipProvider">
  <providers>
    <clear/>
    <add connectionStringName="ADService" connectionUsername="umanage"
      connectionPassword="letmein" enablePasswordReset="true" enableSearchMethods="true"
      applicationName="uManage" clientSearchTimeout="30" serverSearchTimeout="30"
      name="AspNetActiveDirectoryMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </providers>
</membership>
Run Code Online (Sandbox Code Playgroud)

Connection字符串如下所示:

<add name="ADService" connectionString="ldap://familynet.local" />
Run Code Online (Sandbox Code Playgroud)

每当我调用以下代码时:

Membership.GetAllUsers();
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

配置错误说明:处理为此请求提供服务所需的配置文件时发生错误.请查看下面的具体错误详细信息并相应地修改配置文件.

分析器错误消息:Active Directory和ADAM仅支持LDAP连接字符串.

我不明白为什么系统声称LDAP连接字符串是坏的,因为它实际上是MSDN文档中指定的有效LDAP字符串.

http://msdn.microsoft.com/en-us/library/system.web.security.activedirectorymembershipprovider.aspx

有任何想法吗?

asp.net-membership active-directory membership-provider activedirectorymembership

12
推荐指数
1
解决办法
7164
查看次数

ActiveDirectoryMembershipProvider"无法联系指定的域或服务器."

我有一个使用ActiveDirectoryMembershipProvider授予用户访问权限的应用程序.该应用程序托管在非域计算机上,在应用程序服务器和域控制器之间具有防火墙.

我们已经在内部网络上向DC打开了LDAP端口 - 但无论我们尝试什么,我们最终都会出现"无法联系指定的域或服务器"的错误.

有没有人对我如何解决这个问题有任何建议?我们已经尝试了所有我们能想到的东西,但却无法实现.

我的连接字符串是:

<add name="ADConnectionString"
    connectionString="LDAP://10.5.3.7:389/DC=MyTestDomain,DC=local"/>
Run Code Online (Sandbox Code Playgroud)

我的提供者是:

<add name="ActiveDirectoryMembershipProvider"
    type="System.Web.Security.ActiveDirectoryMembershipProvider"
    connectionStringName="ADConnectionString"
    attributeMapUsername="SAMAccountName"
    connectionProtection="None"
    connectionUsername="LdapUser"
    connectionPassword="LdapPassword"   />
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-membership ldap activedirectorymembership

10
推荐指数
1
解决办法
8764
查看次数

从LDAP查询用户组

如何从C#.NET for ASP中的LDAP活动目录中获取用户组用户.在我的场景中,我想将用户名传递给从LDAP Active目录查询的方法,并告诉我我的用户是此用户组的成员.请帮帮我

c# asp.net ldap active-directory activedirectorymembership

9
推荐指数
1
解决办法
2万
查看次数

MVC Active Directory成员资格

我正在尝试使用活动目录成员资格而不是SQL,但在线提供的文档非常有限.我已经设法将我的应用程序连接到域控制器没有任何问题,但是当你使用"Context.User.Identity.Name"时,它会出现DOMAIN\User.我想基本上深入了解并获取全名,电子邮件地址等信息.

我只需要一个有用的链接,我所做的搜索似乎没有让我到任何地方!

非常感谢

c# model-view-controller activedirectorymembership

6
推荐指数
1
解决办法
1738
查看次数

检查当前用户是否是活动目录组的成员

我需要检查当前用户是否是活动目录组的成员.我开始将当前用户设置如下.现在我想知道如何检查此CurrentUser是否在活动目录组"CustomGroup"中

string CurrentUser = WindowsIdentity.GetCurrent().Name;
Run Code Online (Sandbox Code Playgroud)

c# active-directory active-directory-group activedirectorymembership

4
推荐指数
1
解决办法
2万
查看次数

使用 Active Directory 中的成员资格提供程序进行简单的用户名登录

ActiveDirectoryMembershipProvider在我的 ASP.Net 项目之一中使用 Active Directory 进行身份验证。

我使用此 LDAP 连接字符串成功连接到它:

LDAP://server/DC=mydomain,DC=com
Run Code Online (Sandbox Code Playgroud)

但仍有两个问题:

  1. 调用Membership.GetUser("moravej")返回 Null 而调用Membership.GetUser("moravej@mydomain.com")获取正确的对象。有没有办法解决这个问题?当 AD 对他们透明时,我不想让用户使用他们的全名。此外,我不想更改我的代码以连接@mydomain.com到输入的值(因为我需要进行很多更改)

  2. 我希望会员能够使用所有 AD 用户进行登录。(在这种情况下它会这样做)但我希望将由我的应用程序创建的所有用户转到 CRM OU。如果我将连接字符串设置为LDAP://server/OU=CRM,DC=mydomain,DC=com它在调用Membership.GetUser()不在此 OU 中的用户时返回 null 。

有没有办法解决这些问题?

提前致谢

.net asp.net-membership active-directory activedirectorymembership

4
推荐指数
1
解决办法
5439
查看次数

LDAP_MATCHING_RULE_IN_CHAIN可以返回带有属性(特别是"memberOf")的"子树搜索结果"吗?

我有一个带有嵌套组的活动目录(AD)测试实例:Employees(Parent)有两个子组:Executives和Engineers.

Tree:
  Employees
  |
  -Executives
  |   |
  |   -Mister Executive
  |
  -Engineers
      |
      -Joe Engineer
Run Code Online (Sandbox Code Playgroud)

我看到AD扩展名LDAP_MATCHING_RULE_IN_CHAIN将搜索子树; 我可以搜索具有此查询的所有员工:

query:
( & (objectClass=person)   (memberOf:1.2.840.113556.1.4.1941:=CN=Employees,CN=Users,DC=cloud,DC=com))
Run Code Online (Sandbox Code Playgroud)

问题:递归搜索,但没有递归结果

但是,我找不到获取"子树搜索结果"的方法,即当查询将"Mister Executive"作为"Employee"返回时,"memberOf"属性仅列出"Executives",即他直接所属的组.我检查了所有其他属性,但没有看到任何"员工"

概括

因此,为了最终澄清:AD是否允许以任何方式检索"subtree memberOf"结果以及"子树"LDAP_MATCHING_RULE_IN_CHAIN("memberOf:1.2.840.113556.1.4.1941:=")搜索

提前致谢,

active-directory active-directory-group activedirectorymembership

4
推荐指数
1
解决办法
1万
查看次数

ActiveDirectoryMembershipProvider用于验证用户

我想使用ValidateUserActiveDirectoryMembershipProvider 的方法来验证用户是否存在于AD中.

我在表单中输入用户名和密码.我想然后实例化提供程序并调用ValidateUser

<add name="AspNetActiveDirectoryMembershipProvider" 
     type="System.Web.Security.ActiveDirectoryMembershipProvider" 
     connectionStringName="ADConnection" 
     attributeMapUsername = "userPrincipalName"  />
Run Code Online (Sandbox Code Playgroud)

我只是用帖子的测试替换真值.

<add name="ADConnection" connectionString="LDAP://test.test.test.com/dc=test,dc=com" />
Run Code Online (Sandbox Code Playgroud)

为了做我想做的事情,我是否需要向提供商提供用户名和密码,以便它可以首先连接,即系统帐户..一旦建立,我可以检查我想要验证的用户?

谢谢,J

c# ldap active-directory activedirectorymembership

1
推荐指数
1
解决办法
6988
查看次数