RADIUS_EXTENSION_CONTROL_BLOCK 结构 (authif.h)

注意 从 Windows Server 2008 开始, (IAS) 的 Internet 身份验证服务 (NPS) 重命名为网络策略服务器。 本主题的内容适用于 IAS 和 NPS。 在整个文本中,NPS 用于引用服务的所有版本,包括最初称为 IAS 的版本。
 
RADIUS_EXTENSION_CONTROL_BLOCK结构提供有关当前 RADIUS 请求的信息。 它还提供用于获取与请求关联的属性以及设置请求处置的函数。

语法

typedef struct _RADIUS_EXTENSION_CONTROL_BLOCK {
  DWORD                    cbSize;
  DWORD                    dwVersion;
  RADIUS_EXTENSION_POINT   repPoint;
  RADIUS_CODE              rcRequestType;
  RADIUS_CODE              rcResponseType;
  PRADIUS_ATTRIBUTE_ARRAY()(_RADIUS_EXTENSION_CONTROL_BLOCK *This) * GetRequest;
  PRADIUS_ATTRIBUTE_ARRAY()(_RADIUS_EXTENSION_CONTROL_BLOCK *This,RADIUS_CODE rcResponseType) * GetResponse;
  DWORD()(_RADIUS_EXTENSION_CONTROL_BLOCK *This,RADIUS_CODE rcResponseType)                   * SetResponseType;
} RADIUS_EXTENSION_CONTROL_BLOCK, *PRADIUS_EXTENSION_CONTROL_BLOCK;

成员

cbSize

指定结构的大小。

dwVersion

指定 结构的版本。

repPoint

指定 类型为 RADIUS_EXTENSION_POINT 的值,该值指示在请求进程 RadiusExtensionProcess2 中调用的点。

rcRequestType

指定 类型为 RADIUS_CODE 的值,该值指定 Internet 身份验证服务服务器接收的 RADIUS 请求的类型。

rcResponseType

指定 类型为 RADIUS_CODE 的值,该值指示 RADIUS 请求的处置。

GetRequest

指向 NPS 提供的 GetRequest 函数的指针。 NPS 设置此成员的值。

GetRequest 函数返回 RADIUS 请求过程中收到的属性以及描述请求状态的任何内部属性。

扩展 DLL 可以修改 RADIUS 请求中的属性。 例如,如果 NPS 充当 RADIUS 代理,则扩展 DLL 可以筛选哪些属性转发到远程 RADIUS 服务器。

为了修改属性,扩展 DLL 使用作为 RADIUS_ATTRIBUTE_ARRAY 结构的成员提供的函数。

指向 RADIUS_EXTENSION_CONTROL_BLOCK 结构的指针。 NPS 在调用 RadiusExtensionProcess2 结构时,向扩展 DLL 传递指向此结构的指针。

GetResponse

指向 NPS 提供的 GetResponse 函数的指针。 NPS 设置此成员的值。

GetRequest 函数返回 RADIUS 请求过程中收到的属性以及描述请求状态的任何内部属性。

无论请求的当前处置如何,扩展 DLL 都可以使用 GetResponse 检索和修改任何有效响应类型的属性。 例如,扩展 DLL 可以将 响应类型设置为 rcAccessAccept,但仍会将属性添加到在 rcAccessReject 的情况下返回的属性。 在此示例中,扩展 DLL (rcAccessAccept 指定的响应) 可能会在进一步处理过程中被重写。

为了修改属性,扩展 DLL 使用作为 RADIUS_ATTRIBUTE_ARRAY 结构的成员提供的函数。

指向 RADIUS_EXTENSION_CONTROL_BLOCK 结构的指针。 NPS 在调用 RadiusExtensionProcess2 函数时,向扩展 DLL 传递指向此结构的指针。

rcResponseType

指定响应类型。 此参数必须是 RADIUS_CODE 枚举类型枚举的值之一。 否则,函数将失败,返回 NULL

SetResponseType

指向 NPS 提供的 SetResponseType 函数的指针。 NPS 设置此成员的值。

SetResponseType 函数设置请求的最终处置。

请注意,扩展 DLL 设置的处置可在进一步处理期间重写。 例如,扩展 DLL 可以将响应类型设置为 rcAccessAccept,但在进一步处理期间,可以将响应更改为 rcAccessReject

指向 RADIUS_EXTENSION_CONTROL_BLOCK 结构的指针。 NPS 在调用 RadiusExtensionProcess2 函数时,向扩展 DLL 传递指向此结构的指针。

rcResponseType

指定响应类型。 此参数必须是包含在RADIUS_CODE枚举类型中的值之一,并且与 RADIUS_EXTENSION_CONTROL_BLOCK 结构的 rcRequestType 成员相关。 如果 rcRequestType 等于 rcAccessRequest,则此值可以是 rcAccessAcceptrcAccessRejectrcAccessChallengercDiscard。 如果 rcRequestType 等于 rcAccountingRequest,则此值可以是 rcAccountingResponsercDiscard。 否则,函数将失败,返回 ERROR_INVALID_PARAMETER

注解

扩展 DLL 不得修改此结构。 应通过调用作为此结构的成员提供的函数来更改特性数组。

NPS 在调用 RadiusExtensionProcess2 的扩展 DLL 实现时将此结构传递给扩展 DLL。

要求

要求
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2008
标头 authif.h

另请参阅

GetRequest

GetResponse

RADIUS_ATTRIBUTE_ARRAY

SetResponseType