且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在 .NET Web 应用程序中获取登录用户的 UPN 或电子邮件

更新时间:2022-12-22 11:41:07

同时 (.NET 3.5) 这是一个单行:

System.DirectoryServices.AccountManagement.UserPrincipal.Current.EmailAddress

用于电子邮件,或

System.DirectoryServices.AccountManagement.UserPrincipal.Current.UserPrincipalName

用于 UPN.

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.

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.