Revision: 59157
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at August 21, 2012 15:39 by toLL
Initial Code
// get current user identity WindowsIdentity id = WindowsIdentity.GetCurrent(); var useName = id.Name; var authType = id.AuthenticationType; // all user groups (1) foreach (var group in id.Groups) { // get SID of group Console.WriteLine(group.Value); // translate group SID to name Console.WriteLine(group.Translate(typeof(NTAccount))); } // all user groups (2 - better performance) foreach (var group in id.Groups.Translate(typeof(NTAccount))) { Console.WriteLine(group); } // convert to SID (Security Identifier) NTAccount account = new NTAccount(id.Name); var sid = account.Translate(typeof(SecurityIdentifier))); // get principal WindowsPrincipal principal = new WindowsPrincipal(id); // check if user is in role // local admin var localAdmins = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null); var hasAdminRole = principal.IsInRole(localAdmins); // Domain admin var domainAdmin = new SecurityIdentifier(WellKnownSidType.AccountDomainAdminsSid, id.User.AccountDomainSid); var isDomainAdmin = principal.IsInRole(domainAdmin)); // Principal permission new PrincipalPermission(null, "Marketing").Demand(); // throws exception if user doesn't have Marketing role // same but as attribute [PrincipalPermission(SecurityAction.Demand, Role="Development Group")] private static void DoDeveloperWork() { Console.WriteLine("You are a developer"); }
Initial URL
Initial Description
How to get users identity and principal in C#
Initial Title
C# User Identity / Principal
Initial Tags
c#
Initial Language
C#