1

ASP.NET Web サイトの一連の管理ツールの一部として、ディレクトリ サービスを使用してユーザーの Active Directory パスワードを変更しています。

次のエラーが表示されます。

エラー: パスワードを変更できません (権限がありますか?)。
System.Reflection.TargetInvocationException: 呼び出しのターゲットによって例外がスローされました。
---> System.UnauthorizedAccessException: アクセスが拒否されました。
(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))
--- 内部例外スタック トレースの終了 ---
System.DirectoryServices.DirectoryEntry.Invoke(String methodName, Object[] args)
at System.DirectoryServices.AccountManagement.SDSUtils.SetPassword(
System.DirectoryServices.AccountManagement.ADStoreCtx.SetPassword(AuthenticablePrincipal p, String newPassword) のDirectoryEntry de, String newPassword)

Web.config読む:

<authentication mode="Windows" />
<identity impersonate="true" />

Visual Studio デバッグ環境では Set Password ルーチンが正常に完了しますが、別のマシンからアクセスすると完了しません。このリクエストを許可するために偽装を使用しようとしています - サイトは私のドメインとユーザー名を (Context.User.Identity を使用して) 正しく教えてくれ、両方の環境のすべてのユーザーのリストを Active Directory に問い合わせることができます。

私のプリンシパルコンテキストは次のとおりです。

new PrincipalContext(ContextType.Domain, "DOMAINNAME");

どんな助けでも大歓迎です。

4

1 に答える 1

0

追加する必要があります

<authorisation>
    <deny user="?" />
</authorisation>

これにより、匿名ユーザーへのアクセスが拒否され、ユーザーの認証が強制され、なりすましによりアクティブなユーザーになります。これがないと、まだ IUser ゲスト アカウントとして接続しています。

また、IIS で Windows 認証を有効にする必要があります。

于 2012-07-17T17:03:14.017 に答える