Реклама:

Использование функции LogonUser

Для использования функции LogonUser следует задекларировать два API Win32: Logon-User и CloseHandle. API LogonUser ожидает мандаты и возвращает маркер, который требуется закрыть после использования CloseHandle.

Функция LogonUser поддерживает различные типы регистрации. Наиболее распространенным из них является тин NETWORK, но в табл. 5-2 описаны и другие важные типы.

Табл. 5-2. Типы регистрации LogonUser

Тип регистрации

Описание

INTERACTIVE

Интерактивная регистрация. Учетная запись должна иметь

 

привилегию Log On Locally, а маркер необходимо каптиро-

 

вать, что требует определенных расходов. С помощью этого

 

маркера вы можете получить доступ к сетевым ресурсам без

 

необходимости конфигурировать делегирование. Поскольку

 

при этом типе регистрации требуется, чтобы каждый поль-

 

зователь мог входить на Web-сервер локально, nu вряд ли

 

будете им пользоваться

NETWORK

Похож на сетевое подключение к Web-серверу. Доменные

 

пользователи имеют эту привилегию по умолчанию. Кроме

 

того, кэширование не выполняется. Для получении доступа

 

к сетевым ресурсам с помощью данного маркера нужно от-

 

коифигурировать делегирование. Это наиболее распростра-

 

ненный тип входа

NETWORK CLEARTEXT

Данный тип регистрации хранит имя и пароль в пакете

 

аутентификации, что позволяет серверу путем олицетворе-

 

нии подключаться к другим серверам сети без конфигуриро-

 

вания делегирования. Этот тип регистрации похож

 

па стандартный тип NETWORK

NEW CREDENTIALS

Вызывающей программе разрешается клонировать текущий

 

маркер и залапан, новые мандаты лля исходящих подклю-

 

чении. Новый сеанс регистрации имеет тот же локальный

 

идентификатор, но для других сетевых подключений ис-

 

пользует другие мандаты. Так удобно делать, например,

 

па время использовании одноранговой аутентификации,

 

а также при необходимости получить доступ к ресурсу, за-

 

щищенному списками АСЕ, с помощью учетной записи без

 

локальной зеркали.чации. Этот принцип используется в клю-

 

че /nelonly команды runas при ее вызове и командной строке

Класс In to гор имеет такой вид.

Декларирование API Win32

internal class NariveMethods {

[DllInport{"advapi32.dll")] internal static extern int LogonUser(

string lps/Username.

string IpsMuthority,

string lps?Password,

LogonType dwLogonType,

ProviderType dwLogonProvidor,

onl IntPtr phToken);

[011IiriportCkernel32.dll")]

internal static extern bool CloseHandle(IntPtr pnToken);

I ещет LogonType {

L0G0N32..L0GDN_INTERACTIVE = 2.

LOGON32_ LOGON NETWORK = 3, LOG0N32_LOGON_BATCH = 4. L0G0N32_L0GON_SERVICE = 5, LOGON32_L0GON_UNLOCK = 7, LOGON32_LOGON_NETWORK_CLEARTEXT = 8, L0G0N32JOG0N_NEW .CREDENTIALS = 9,

>

enum Provjdei iype {

L0G0N32_PR0VIDER_DEFAULT = 0. L0G0N32_PR0VIDER_WINNT35 = 1. LOGON32_PR0VIDER_WINNT40 = 2, LOGON32_PROVIDER_WINNT50 = 3


⇐ Предыдущая страница| |Следующая страница ⇒