Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Эта статья относится к Windows.
Сведения о ASP.NET Core см. в разделе ASP.NET Core Security.
Существует два способа создания WindowsPrincipal объекта в зависимости от того, должен ли код многократно выполнять проверку на основе ролей или выполнять его только один раз.
Если код должен многократно выполнять проверку на основе ролей, первая из следующих процедур приводит к снижению затрат. Если коду необходимо выполнить проверку на основе ролей только один раз, можно создать WindowsPrincipal объект с помощью второй из следующих процедур.
Создание объекта WindowsPrincipal для повторной проверки
Вызовите метод SetPrincipalPolicy на объекте AppDomain, который возвращается статическим свойством AppDomain.CurrentDomain, передав в метод значение перечисления PrincipalPolicy, указывающее, какой должна быть новая политика. Поддерживаются значения NoPrincipal, UnauthenticatedPrincipal и WindowsPrincipal. Следующий код демонстрирует этот вызов метода.
AppDomain.CurrentDomain.SetPrincipalPolicy( PrincipalPolicy.WindowsPrincipal);AppDomain.CurrentDomain.SetPrincipalPolicy( _ PrincipalPolicy.WindowsPrincipal)С помощью набора политик используйте статическое Thread.CurrentPrincipal свойство, чтобы получить субъект, инкапсулирующий текущего пользователя Windows. Так как тип возвращаемого свойства имеет значение IPrincipal, необходимо привести результат к типу WindowsPrincipal . Следующий код инициализирует новый WindowsPrincipal объект со значением принципала, связанного с текущим потоком.
WindowsPrincipal myPrincipal = (WindowsPrincipal) Thread.CurrentPrincipal;Dim myPrincipal As WindowsPrincipal = _ CType(Thread.CurrentPrincipal, WindowsPrincipal)При создании основного объекта можно использовать один из нескольких методов для его проверки.
Создание объекта WindowsPrincipal для одной проверки
Инициализировать новый WindowsIdentity объект, вызвав статический WindowsIdentity.GetCurrent метод, который запрашивает текущую учетную запись Windows и помещает сведения об этой учетной записи в только что созданный объект удостоверения. Следующий код создает новый WindowsIdentity объект и инициализирует его текущему пользователю, прошедшему проверку подлинности.
WindowsIdentity myIdentity = WindowsIdentity.GetCurrent();Dim myIdentity As WindowsIdentity = WindowsIdentity.GetCurrent()Создайте объект WindowsPrincipal и передайте его значение объекта, созданного WindowsIdentity на предыдущем шаге.
WindowsPrincipal myPrincipal = new WindowsPrincipal(myIdentity);Dim myPrincipal As New WindowsPrincipal(myIdentity)При создании основного объекта можно использовать один из нескольких методов для его проверки.