我有兩個域名,MINE和他們的。 MINE是我的本地域名,並且與他們有着單向的信任(使用LDAPS端口636),所以MINE相信他們,但他們不信任MINE。我可以將他們的用戶添加到MINE的組中,並讓用戶從THE登錄到MINE網絡上的機器和應用程序。信任似乎正常工作。從單向信任訪問用戶信息
我寫一個小.NET應用程序(不ASP.Net)通過廣域網來測試連接。我們有一個應用程序沒有在MINE中看到來自他們的用戶。其他應用程序,如SharePoint,工作正常。
我嘗試使用ASP.Net 4選項與System.DirectoryServices.AccountManagement對象,如PrincipalContext,UserPrincipal,GroupPrincipal等簡單的代碼片段
PrincipalContext domainContext = GetDomainContext(DomainName, ConnectionPort,
UseSpecifiedCredentials, Credentials);
GroupPrincipal theGroup = GroupPrincipal.FindByIdentity(domainContext,
IdentityType.SamAccountName, GroupName);
PrincipalCollection theUsers = theGroup.Members;
var users = from u in theUsers
select u.Name;
return users.ToArray();
,當我直接連接到MINE這一切的偉大工程。這個問題與連接到他們的問題。無論是LDAPS交通的信任1種方式返回錯誤:
System.DirectoryServices.Protocols.LdapException: The LDAP server is unavailable.
所以我切換到.NET中使用的DirectoryEntry,的DirectorySearcher等,這實際上是對工作他們域2度的變化。
List<string> userNames = new List<string>();
string searchString = string.Format("(sAMAccountName={0})", GroupName);
SearchResult result = SearchAD(DomainName, ConnectionPort, searchString);
我可以直接連接到THEIRS域,在代碼中使用一些模擬。
當我查詢在我的組,我回來了,從他們的用戶,而不是用戶帳戶的SID。
The following users are a member of testGroup:
CN=S-1-5-21-....,CN=ForeignSecurityPrincipals,DC=MINE,DC=local
CN=S-1-5-21-....,CN=ForeignSecurityPrincipals,DC=MINE,DC=local
我試過這個模擬,以及作爲用戶從他們運行它,但沒有運氣。
當用戶在礦山時,如何從他們的用戶獲取用戶信息?我必須採取上述CN/SID並查詢THEIRS域名嗎?我在.Net 4中丟失了什麼?
Bueller?Bueller –