|
ありがとうございます。いま実行環境が手元にないですが、昨日確認したことを記載します。(後ほど改めて再確認します。)
1.偽装について
IISの設定画面の、[認証アイコン]から偽装を有効にし、
管理者権限を持っているアカウント(PCにログインしたときのアカウント)を指定しても、
同様にE_ACCESSDENIEDエラーが発生しました。
またweb.configファイルに、
<identity impersonate="true" userName="AdminUserID" password="AdminPassword" />
を追加しても、同様にE_ACCESSDENIEDエラーが発生しました。
(実行時にSystem.Security.Principal.WindowsIdentity.GetCurrent().Nameをダンプすることで、
管理者権限持ちアカウントになっていることは確認できました。)
2.DirectoryServiceのコンストラクタについて
> using(DirectoryEntry directoryEntry = new DirectoryEntry(@"LDAP://dc=xxxx,dc=local")) { // ←ドメインの指定(ドメイン名="xxxx.local")
を、
using(DirectoryEntry directoryEntry = new DirectoryEntry(@"LDAP://dc=xxxx,dc=local", "AdminUserID", "AdminPassword", AuthenticationTypes.Secure)) {
としましたが、同様にE_ACCESSDENIEDエラーが発生しました。もしかしてAuthenticationTypes.Secureの指定は不要だったのでしょうか?
また
using(DirectoryEntry userEntry = result.GetDirectoryEntry()) {
を、
using(DirectoryEntry userEntry = result.GetDirectoryEntry()) {
using(DirectoryEntry ue = new DirectoryEntry(userEntry.Path, "AdminUserID", "AdminPassword", AuthenticationTypes.Secure)) {
ue.Invoke("SetPassword", ……
のように管理者アカウントを追加しなおしたDirectoryEntryを利用しても、E_ACCESSDENIEDエラーでした。
なおWebサイトの構成は、デフォルト(root)のアプリケーションの直下に、アプリケーションを作成ました。
アプリケーションプールを新規作成し、管理者権限で実行するようにしても、同様の箇所で、E_ACCESSDENIEDエラーが発生しました。
他に確認すべきこと、試行できることがございましたら、教えていただけると助かります。
|