0

Active Directory 認証を実装しようとしていますが、次のような例外が発生しています

System.Runtime.InteropServices.COMException was caught
  Message=Unknown error (0x80005000)
  Source=System.DirectoryServices
  ErrorCode=-2147463168
  StackTrace:
       at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
       at System.DirectoryServices.DirectoryEntry.Bind()
       at System.DirectoryServices.DirectoryEntry.get_AdsObject()
       at System.DirectoryServices.DirectorySearcher.FindAll(Boolean findMoreThanOne)
       at System.DirectoryServices.DirectorySearcher.FindOne()
       at ConsoleApplication1.ADAuthentication.AuthenticateADUsers(String userNameWithDomain, String password) in C:\Users\awadhendrat\documents\visual studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs:line 83
       at ConsoleApplication1.Program.Main(String[] args) in C:\Users\awadhendrat\documents\visual studio 2010\Projects\ConsoleApplication1\ConsoleApplication1\Program.cs:line 23
  InnerException: 

何が欠けているのかわからない。AD認証を実装するために私が書いた次のコード。

public bool AuthenticateADUsers(string userNameWithDomain, string password)
        {
            DirectoryEntry objDirectoryEntry = null;
            DirectorySearcher objDirectorySearcher = null;

            try
            {
                objDirectoryEntry = new DirectoryEntry("https://ab.hotels.com/", userNameWithDomain, password, AuthenticationTypes.Delegation);
                objDirectorySearcher = new DirectorySearcher(objDirectoryEntry);
                objDirectorySearcher.Filter = string.Format("(&(objectClass=user)(objectCategory=user) (sAMAccountName={0}))", userNameWithDomain.Substring(0, userNameWithDomain.IndexOf('@')));
                objDirectorySearcher.PropertiesToLoad.Add("msRTCSIP-PrimaryUserAddress");
                var result = objDirectorySearcher.FindOne();
                if (result != null)
                    return true;
                else
                    return false;                           
            }
            catch
            {
                throw;
            }
        }

私はいくつかのグーグルをしましたが、役に立ちません。ここでは、彼らが LDAP://somedomain/ と書いた場所のように混乱することはほとんどありませんが、ここではhttps://somedomain.comを持っています。別の混乱は、テスト アプリケーションが 1 つのドメインにあり、提供されたドメインが別のサーバーにあることです。

AD 認証に使用されるクライアントから提供されたリンクを開くと、Open Office Web Access が開きます。

この問題を解決する方法がわかりません。

ありがとう。

4

1 に答える 1

0

この回答(およびこれをテストするために作成したいくつかの簡単なコード)によると、これはアクセス許可の問題です(ADパスのhttps URLの使用に関連している可能性があります。このコードをチェックアウトしDirectoryEntryまたは完全に実行しているという事実を確認してください。認証しようとしているのと同じユーザーを使用したAD検索)。

于 2012-10-03T17:34:21.490 に答える