Получение имени пользователя из Active Directory
Я пытаюсь получить имя пользователя из Active Directory. Я нашел этот кусок кода, чтобы попробовать, однако он не распознает User
часть User.Identity.Name
, Я посмотрел, нужно ли мне добавить еще одну ссылку или сборку, однако я ничего не видел. Есть ли лучший способ получить имя пользователя из Active Directory?
static string GetUserName(){
string name = "";
using (var context = new PrincipalContext(ContextType.Domain))
{
var usr = UserPrincipal.FindByIdentity(context, User.Identity.Name);
if (usr != null)
name = usr.DisplayName;
}
}
2 ответа
Решение
Вы можете использовать WindowsIdentity.GetCurrent
using System.Security.Principal;
static string GetUserName()
{
WindowsIdentity wi = WindowsIdentity.GetCurrent();
string[] parts = wi.Name.Split('\\');
if(parts.Length > 1) //If you are under a domain
return parts[1];
else
return wi.Name;
}
Использование:
string fullName = GetUserName();
Рад помочь вам!
Как насчет:
public string GetUserName()
{
string name = "";
using (var context = new PrincipalContext(ContextType.Domain))
{
var usr = UserPrincipal.Current;
if (usr != null)
{
name = usr.DisplayName;
}
}
}