c# - Get WindowsPrincipal from UserPrincipal -


the goal

i'm writing class abstracts various windows user mechanics. class knows user's account name , domain, if any. trying hydrate property indicates whether user has administrative privilege on either domain or local environment belongs to.

the problem

the windowsprincipal class provides information via isinrole, it's constructor requires windowsidentity, can't find way establish without user principal name (upn). userprincipal.userprincipalname property available domain users, null local users. there way windowsprincipal userprincipal? alternatively, there way accomplish goal without it?

the source

using (principalcontext principalcontext = new principalcontext(principalcontexttype, principalcontextname)) {     using (userprincipal userprincipal = userprincipal.findbyidentity(principalcontext, identitytype.name, name))     {         // capture additional information user principal.         certificates = userprincipal.certificates;         displayname = userprincipal.displayname;         userprincipalname = userprincipal.userprincipalname;          // constructor blows because userprincipalname null local users.         using (windowsidentity windowsidentity = new windowsidentity(userprincipalname))         {             // capture group membership information specified user.             windowsprincipal windowsprincipal = new windowsprincipal(windowsidentity);              // determine if user has administrative privilege on domain or local machine.             hasadministrativeprivilege = windowsprincipal.isinrole(windowsbuiltinrole.administrator);         }     } } 

thanks in advance.


Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -