Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get UPN or email for logged in user in a .NET web application

Tags:

I'm not a .NET developer, and I have a feeling this would be trivial for someone who is:

I have a C# web application that makes user of the user credentials of the logged in user. Currently it uses the SID which comes from

System.Security.Principal.WindowsIdentity.GetCurrent().User.Value  

I need to get either the users UPN login or email address (as defined in active directory) instead of the SID. GetCurrent() returns an object of type WindowsIdentity; looking in the details for WindowsIdentity Members:

MSDN: WindowsIdentity Members

I can't see anything that looks like it would give me either the UPN or email in there. How can I pull up that information to use, either by feeding the SID into some other function or calling something different in the first place.

like image 402
DrStalker Avatar asked Jul 09 '09 05:07

DrStalker


1 Answers

Meanwhile (.NET 3.5) this is a one-liner:

System.DirectoryServices.AccountManagement.UserPrincipal.Current.EmailAddress 

for the email, or

System.DirectoryServices.AccountManagement.UserPrincipal.Current.UserPrincipalName 

for the UPN.

like image 62
Kiki Avatar answered Sep 20 '22 11:09

Kiki