スポンサーリンク
スポンサーリンク

「While trying to resolve a cross-store reference, the target principal could not be found in the domain indicated by the principal's SID.」例外が発生する原因

ActiveDirectoryC#Visual Studio

以下のC#のプログラムで、最後にある「 foreach (Principal r in results) 」が実行された時に、「While trying to resolve a cross-store reference, the target principal could not be found in the domain indicated by the principal’s SID.」例外が発生する原因がどうにも分からず、マイクロソフトに聞いてみたら、回答を貰えました。

【例外が発生するソース】

【例外の内容】
e.Data=System.Collections.ListDictionaryInternal e.HelpLink=
e.InnerException= e.Message=While trying to resolve a cross-store reference, the target principal could not be found in the domain indicated by the principal’s SID.
e.Source=System.DirectoryServices.AccountManagement e.StackTrace=
at
System.DirectoryServices.AccountManagement.ADStoreCtx.ResolveCrossStoreRefToPrincipal(Object o)
at
System.DirectoryServices.AccountManagement.ADUtils.DirectoryEntryAsPrincipal(DirectoryEntryde, ADStoreCtx storeCtx)
at
System.DirectoryServices.AccountManagement.ADDNLinkedAttrSet.get_CurrentAsPrincipal()
at
System.DirectoryServices.AccountManagement.FindResultEnumerator`1.get_Current()

【Microsoftからの回答】
このエラーは、マルチドメイン環境で、ドメインサーバ間でユーザが重複していて、更にC#のPrincipalを使ってSIDの情報を取得してい ると発生します。
PrincipalクラスではなくDirectoryEntoryクラスを使うようにするか、ドメインサーバ間でユーザの重複を解消するか、どちらかの対策を行えば、このエラーは発生しなくなるはずです。

 

コメント

タイトルとURLをコピーしました