所以我有一個問題,我真的不知道如何問。基本上我有一些代碼在運行時在我的本地機器上運行得非常好。一旦我將它發佈到我們的開發Web服務器,它就會失敗。我不確定它是否是IIS設置問題,web.config問題或編碼問題。C#活動目錄PrincipalContext/UserPrincipal.IsMemberOf錯誤
這裏的代碼
bool isMember = false;
PrincipalContext ADDomain = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(ADDomain, userID);
if (user.IsMemberOf(ADDomain, IdentityType.Name, groupName.Trim()))
{
isMember = true;
}
return isMember;
如果我通過用戶名和一組片段,如果該用戶的該組中的一員,它告訴我。沒問題。在我的機器上很好用。我去的代碼發佈到Web服務器,當它擊中線
UserPrincipal user = UserPrincipal.FindByIdentity(ADDomain, userID);
它拋出這個錯誤失敗:
[DirectoryServicesCOMException (0x80072020): An operations error occurred.]
System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) +788
System.DirectoryServices.DirectoryEntry.Bind() +44
System.DirectoryServices.DirectoryEntry.get_AdsObject() +42
System.DirectoryServices.PropertyValueCollection.PopulateList() +29
System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName) +63
System.DirectoryServices.PropertyCollection.get_Item(String propertyName) +163 System.DirectoryServices.AccountManagement.PrincipalContext.DoLDAPDirectoryInitNoContainer() +521217
System.DirectoryServices.AccountManagement.PrincipalContext.DoDomainInit() +51
System.DirectoryServices.AccountManagement.PrincipalContext.Initialize() +141
System.DirectoryServices.AccountManagement.PrincipalContext.get_QueryCtx() +42
System.DirectoryServices.AccountManagement.Principal.FindByIdentityWithTypeHelper(PrincipalContext context, Type principalType, Nullable`1 identityType, String identityValue, DateTime refDate) +29
System.DirectoryServices.AccountManagement.UserPrincipal.FindByIdentity(PrincipalContext context, String identityValue) +95
Cosmic.Web.Login.btnSubmit_Click(Object sender, EventArgs e) in C:\cosmic\Cosmic.Web\Login.aspx.cs:79
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +154
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3691
任何想法在那裏這可能是失敗的?
你知道嗎,就是這樣。網絡服務器沒有正確的憑據來訪問Active Directory。把一些憑據放在那裏,它的工作原理好一點。謝謝! – Seril 2012-01-03 17:58:32