1

私はasp.net Webアプリケーションで作業していました。フォーム認証を使用して、Active Directory からユーザーを検証しました。すべて正常に動作します。しかし、AdsObject を一度も使用されていないネイティブ オブジェクトにバインドする必要がある理由がわかりません。私のコードは次のようになります

 DirectoryEntry entry = new DirectoryEntry(_path, domainAndUsername, pwd);
        string[] uName;
        try
        {
            //Bind to the native AdsObject to force authentication.
            object obj = entry.NativeObject;

            DirectorySearcher search = new DirectorySearcher(entry);
            uName = domainAndUsername.Split('\\');
            search.Filter = "(SAMAccountName=" + uName[1] + ")";
            search.PropertiesToLoad.Add("cn");
            SearchResult result = search.FindOne();

            if (null == result)
            {
                return false;
            }

            //Update the new path to the user in the directory.
            _path = result.Path;
            _filterAttribute = (string)result.Properties["cn"][0];
        }
        catch (Exception ex)
        {
            throw new Exception("Error authenticating user. " + ex.Message);
        }

私もその行にコメントしてテストしました。それもうまくいきました。答えを求めてあらゆる場所を探しましたが、見つかりませんでした。ここで手に入れることを願っています.. :)

4

1 に答える 1

1

MSDN ドキュメントのどこにも見つかりませんが、NativeObject を取得すると認証が強制されます。認証に失敗すると、例外がスローされます。

于 2014-05-11T21:20:38.557 に答える