Поделиться через


Метод IHttpUser::IsInRole

Возвращает значение, указывающее, авторизован ли пользователь для именованной роли.

Синтаксис

virtual HRESULT IsInRole(  
   IN PCWSTR pszRoleName,  
   OUT BOOL* pfInRole  
) = 0;  

Параметры

pszRoleName
[IN] Указатель на константную строку Юникода, завершающуюся null, которая содержит имя роли.

pfInRole
[OUT] Указатель на , указывающий BOOL , авторизован ли пользователь для роли, указанной pszRoleName.

Возвращаемое значение

Объект HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.

Значение Определение
S_OK Указывает, что операция выполнена успешно.
E_NOTIMPL Указывает, что IsInRole метод не был реализован.

Комментарии

Вызывайте метод только в IsInRole том случае, если метод SupportsIsInRole сначала возвращает тот true же указатель IHttpUser .

Возвращаемое IsInRole значение зависит от реализации. В качестве руководства следует использовать следующие сведения, но они могут быть неправильными во всех сценариях:

  • IHttpUser Если реализующий объект обрабатывает анонимную проверку подлинности, параметру разыменования pfInRole присваивается значение true только в том случае, если pszRoleName параметр имеет значение NULL или пуст. IsInRole затем всегда возвращает S_OK.

  • IHttpUser Если реализация обрабатывает обычную проверку подлинности, сопоставление сертификации, SSPI или пользовательскую проверку подлинности, pfInRole параметр неизменится и IsInRole немедленно возвращает E_NOTIMPL.

  • IHttpUser Если реализующий объект обрабатывает управляемую проверку подлинности, pfInRole параметр неизменяется и IsInRole возвращает E_INVALIDARG немедленно, если любой из параметров имеет значение NULL. В противном случае имеет значение trueи IsInRole возвращает S_OK только в том случае, pfInRole если пользователь находится в роли .

Пример

В следующем примере кода показано, как создать модуль HTTP, который очищает заголовки и текст ответа, а затем возвращает клиенту сведения о пользователе в виде XML-документа.

Приведенный выше код записывает XML-код, аналогичный приведенному ниже, в поток ответа.

<?xml version="1.0" ?>  
<user supportsRoles="true" isInRole="false" />  

Модуль должен экспортировать функцию RegisterModule . Эту функцию можно экспортировать, создав файл определения модуля (DEF) для проекта, или скомпилировать модуль с помощью /EXPORT:RegisterModule параметра . Дополнительные сведения см. в разделе Пошаговое руководство. Создание модуля HTTP Request-Level с помощью машинного кода.

При необходимости можно компилировать код с помощью соглашения о __stdcall (/Gz) вызовах вместо явного объявления соглашения о вызовах для каждой функции.

Требования

Тип Описание
клиент — IIS 7.0 в Windows Vista
— IIS 7.5 в Windows 7
— IIS 8.0 в Windows 8
— IIS 10.0 в Windows 10
Сервер — IIS 7.0 в Windows Server 2008
— IIS 7.5 в Windows Server 2008 R2
— IIS 8.0 в Windows Server 2012
— IIS 8.5 в Windows Server 2012 R2
— IIS 10.0 в Windows Server 2016
Продукт — IIS 7.0, IIS 7.5, IIS 8.0, IIS 8.5, IIS 10.0
— IIS Express 7.5, IIS Express 8.0, IIS Express 10.0
Заголовок Httpserv.h

См. также:

Интерфейс IHttpUser