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");
どんな助けでも大歓迎です。