RADIUS_EXTENSION_CONTROL_BLOCK structure (authif.h)
Syntax
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;
Members
cbSize
Specifies the size of the structure.
dwVersion
Specifies the version of the structure.
repPoint
Specifies a value of type RADIUS_EXTENSION_POINT that indicates at what point in the request process RadiusExtensionProcess2 was called.
rcRequestType
Specifies a value of type RADIUS_CODE that specifies the type of RADIUS request received by the Internet Authentication Service server.
rcResponseType
Specifies a value of type RADIUS_CODE that indicates the disposition of the RADIUS request.
GetRequest
Pointer to the GetRequest function provided by NPS. NPS sets the value of this member.
The GetRequest function returns the attributes received in the RADIUS request process and any internal attributes describing the request state.
The Extension DLL can modify the attributes in the RADIUS request. For example, if NPS is acting as a RADIUS proxy, an Extension DLL could filter which attributes are forwarded to the remote RADIUS server.
To modify the attributes, the Extension DLL uses the functions provided as members of the RADIUS_ATTRIBUTE_ARRAY structure.
This
Pointer to a RADIUS_EXTENSION_CONTROL_BLOCK structure. NPS passes the Extension DLL a pointer to this structure when it calls the RadiusExtensionProcess2 structure.
GetResponse
Pointer to the GetResponse function provided by NPS. NPS sets the value of this member.
The GetRequest function returns the attributes received in the RADIUS request process and any internal attributes describing the request state.
An Extension DLL can use GetResponse to retrieve and modify the attributes for any valid response type regardless of the request's current disposition. For example, an Extension DLL could set the response type to rcAccessAccept, but still add attributes to those returned in the case of an rcAccessReject. The response specified by the Extension DLL (rcAccessAccept in this example) could be overridden during further processing.
To modify the attributes, the Extension DLL uses the functions provided as members of the RADIUS_ATTRIBUTE_ARRAY structure.
This
Pointer to a RADIUS_EXTENSION_CONTROL_BLOCK structure. NPS passes the Extension DLL a pointer to this structure when it calls the RadiusExtensionProcess2 function.
rcResponseType
Specifies the response type. This parameter must be one of the values enumerated by the RADIUS_CODE enumeration type. Otherwise, the function fails, returning NULL.
SetResponseType
Pointer to the SetResponseType function provided by NPS. NPS sets the value of this member.
The SetResponseType function sets the final disposition of the request.
Note that the disposition set by the Extension DLL can be overridden during further processing. For example, the Extension DLL may set the response type to rcAccessAccept, but during further processing, the response can be changed to rcAccessReject.
This
Pointer to a RADIUS_EXTENSION_CONTROL_BLOCK structure. NPS passes the Extension DLL a pointer to this structure when it calls the RadiusExtensionProcess2 function.
rcResponseType
Specifies the response type. This parameter must be one of the values contained within the RADIUS_CODE enumerated type and is related to the rcRequestType member of the RADIUS_EXTENSION_CONTROL_BLOCK structure. If rcRequestType equals rcAccessRequest, this value may be rcAccessAccept, rcAccessReject, rcAccessChallenge, or rcDiscard. If rcRequestType equals rcAccountingRequest, this value can be rcAccountingResponse or rcDiscard. Otherwise, the function fails, returning ERROR_INVALID_PARAMETER.
Remarks
The Extension DLL must not modify this structure. Changes to the array of attributes should be made by calling the functions provided as members of this structure.
NPS passes this structure to the Extension DLL when it calls the Extension DLL's implementation of RadiusExtensionProcess2.
Requirements
Requirement | Value |
---|---|
Minimum supported client | None supported |
Minimum supported server | Windows Server 2008 |
Header | authif.h |