Vraag Krijgt u Active Directory-informatie bij gebruik van Windows-verificatie?


Ik gebruik Windows-verificatie op mijn asp.net MVC 3-app. Is er een manier mogelijk om de gebruikersinformatie uit de actieve map te halen?

Ik weet dat ik User.Name.Identity kan gebruiken en dat werkt voor de inlognaam. Maar hoe zit het met het verkrijgen van de gebruikersnaam, achternaam en zelfs de beschrijving of het kantoor allemaal uit de actieve map. Is dit mogelijk via .net?


13
2018-02-10 18:24


oorsprong


antwoorden:


Natuurlijk!! Als u .NET 3.5 of hoger gebruikt, is het eigenlijk vrij eenvoudig.

Gebruik in principe de naamruimte System.DirectoryServices.AccoutManagement (lees er hier alles over: Managing Directory Security Principals in .NET Framework 3.5).

Dan: je moet de gebruiker "vinden" en de eigenschappen ervan pakken - gebruik code zoiets als dit:

// create domain context
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);

// find the user
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, "username");

if(user != null)
{
    // access the user's properties in a nice, object-oriented way
}

22
2018-02-10 18:33



Als uw code wordt uitgevoerd onder de context van de gebruiker waarvoor u informatie nodig hebt, wordt deze zelfs nog lichter (dat wil zeggen Windows-verificatie):

//Must reference System.DirectoryServices.AccountManagement
var user = UserPrincipal.Current;

var firstName = user.GivenName;
var lastName = user.Surname;

5
2017-11-12 19:31



Het lijkt erop dat je de System.DirectoryServices namespace. hier is een gids over hoe u eigenschappen van een Directory-object kunt lezen.


1
2018-02-10 18:31



In mijn omgeving moest ik dit toevoegen aan de sectie in Web.config:

<identity impersonate="true" />

0
2017-07-11 11:42