Die S.DS.AM Namespace wurde in .NET 3.5 eingeführt, und leider gibt es keine 2.0-Version davon.
Sie können den aktuellen Windows-Benutzer in einer ASP.NET-Anwendung mithilfe von WindowsIdentity.GetCurrent() abfragen. Name - das gibt Ihnen DOMÄNE \ UserName.
Dann müssen Sie eine Benutzersuche in AD für diesen Benutzer mit einem DirectorySearcher-Objekt durchführen, um den entsprechenden DirectoryEntry zu finden. Dies wird Ihnen alle Teile dieses Benutzers geben.
string currentUser = WindowsIdentity.GetCurrent().Name;
string[] domainUserName = currentUser.Split('\\');
string justUserName = domainUserName[1];
DirectoryEntry searchRoot = new DirectoryEntry("LDAP://dc=(yourcompany),dc=com");
DirectorySearcher ds = new DirectorySearcher(searchRoot);
ds.SearchScope = SearchScope.Subtree;
ds.PropertiesToLoad.Add("sn");
ds.PropertiesToLoad.Add("givenName");
ds.Filter = string.Format("(&(objectCategory=person)(samAccountName={0}))", justUserName);
SearchResult sr = ds.FindOne();
if (sr != null)
{
string firstName = sr.Properties["givenName"][0].ToString();
string lastName = sr.Properties["sn"][0].ToString();
}
Es ist ein bisschen kompliziert und verwickelt in .NET 2.0 - kann das nicht :-(
Marc
ura Genie ändern ... es perfekt vielen Dank arbeitete – waqasahmed
ich verwendet Request.ServerVariables ["REMOTE_USER"] anstelle von WindowsIdentity.GetCurrent(). Name; tho .... aber danke ... hat perfekt funktioniert – waqasahmed
sei vorsichtig und stelle sicher, dass du deine Verzeichniseinträge entsorgst, sie neigen dazu, für immer herumzuhängen und werden dich einmal jammen run out von gleichzeitigen Verbindungen – SillyMonkey