Name – имя пользователя;
IsAuthenticated – возвращает true, если пользователь был аутентифицирован, в противном случае возвращает false;
AuthenticationType – возвращает тип аутентификации.
Ниже представлен пример кода, который позволяет получить эти свойства для текущего пользователя:
using System;
using System.Security.Principal;
class IdentitylTest
{
static void Main()
{
WindowsIdentity idn=WindowsIdentity.GetCurrent();
Console.WriteLine("Name: {0}",idn.Name);
Console.WriteLine(
"IsAuthenticated: {0}",idn.IsAuthenticated);
Console.WriteLine("Type: {0}",idn.AuthenticationType);
}
}
Второй по важности класс – WindowsPrincipal. Этот объект хранит информацию о ролях пользователя и позволяет определять, входит ли данный пользователь в заданную роль.
Ниже показан способ использования класса WindowsPrincipal:
using System;
using System.Security.Principal;
class PrincipalTest
{
static void Main()
{
WindowsIdentity idn=WindowsIdentity.GetCurrent();
WindowsPrincipal wspl=new WindowsPrincipal(idn);
if (wspl.IsInRole("DOMAIN\\Administrators"))
{
Console.WriteLine("I am administrator");
}
}
}
Запрашиваемые полномочия
Выше мы рассматривали набор классов, который позволяет запросить требуемые полномочия в момент выполнения программы. Это может сказаться на производительности вашего кода. Так как частый запрос на изменение полномочий требует некоторого времени. Кроме того, было бы хорошо иметь способ запросить необходимые полномочия сразу при загрузке сборок. Это возможно сделать с помощью атрибутов. Прежде чем рассмотреть, как выполнить запрос полномочий, рассмотрим способы их запроса:
|