Explains how to access and manage user and security information in .NET applications using System.DirectoryServices.AccountManagement instead of My.User.Name.
1Imports System.DirectoryServices.AccountManagement
In WPF development you can’t just use the “My.User.Name” classes as it is not set by default. If you still want to use it you can “My.User.InitializeWithWindowsUser()” to have it setup, but there is a better way.
If you are using Active Directory .Net 3.5 has provided a new way to access information…
There is a new assembly called “System.DirectoryServices.AccountManagement” that encapsulates all of the logic for accessing security information in a number of ways.
You can create a link to your local Active Directory by calling:
1 Dim ctx As New PrincipalContext(ContextType.Domain)
The options for conencting are:
ApplicationDirectory - The application directory store. This represents the AD LDS store.
Domain - The domain store. This represents the AD DS store.
Machine - The computer store. This represents the SAM store.
These options allow for most security authentications in your .NET applications, and it does not stop with wrapping the top level AD. if you want to access and control a user you need only:
1Dim u As UserPrincipal = UserPrincipal.FindByIdentity(ctx, IdentityType.Sid, WindowsIdentity.GetCurrent.User.Value)
I really like this as often I have has to build and Google (more the later than the former) class library for manipulating Active Directory objects, and you need not just use the Sid. You can use:
DistinguishedName - The identity is a Distinguished Name (DN).
Guid - The identity is a Globally Unique Identifier (GUID).
Name - The identity is a name.
SamAccountName - The identity is a Security Account Manager (SAM) name.
Sid - The identity is a Security Identifier (SID) in Security Descriptor Definition Language (SDDL) format.
UserPrincipalName - The identity is a User Principal Name (UPN).
And this is just the direct load of a user object. There are Group object as well as fill search capability with the PrincipalSearcher and various other bits and bobs…
If you've made it this far, it's worth connecting with our principal consultant and coach, Martin Hinshelwood, for a 30-minute 'ask me anything' call.
We partner with businesses across diverse industries, including finance, insurance, healthcare, pharmaceuticals, technology, engineering, transportation, hospitality, entertainment, legal, government, and military sectors.
Milliman
Sage
Cognizant Microsoft Business Group (MBG)
Lockheed Martin
Xceptor - Process and Data Automation
Capita Secure Information Solutions Ltd
Healthgrades
Lean SA
Graham & Brown
Ericson
ALS Life Sciences
Genus Breeding Ltd
Qualco
Jack Links
Higher Education Statistics Agency
YearUp.org
SuperControl
Illumina
Washington Department of Enterprise Services
Department of Work and Pensions (UK)
Nottingham County Council
Ghana Police Service
Washington Department of Transport
New Hampshire Supreme Court
Jack Links
Flowmaster (a Mentor Graphics Company)
Ericson
Graham & Brown
Genus Breeding Ltd
Lockheed Martin