Skip to content

Latest commit

 

History

History
149 lines (93 loc) · 12.3 KB

nf-aclui-ieffectivepermission2-computeeffectivepermissionwithsecondarysecurity.md

File metadata and controls

149 lines (93 loc) · 12.3 KB
UID title description helpviewer_keywords old-location tech.root ms.assetid ms.date ms.keywords req.header req.include-header req.target-type req.target-min-winverclnt req.target-min-winversvr req.kmdf-ver req.umdf-ver req.ddi-compliance req.unicode-ansi req.idl req.max-support req.namespace req.assembly req.type-library req.lib req.dll req.irql targetos req.typenames req.redist ms.custom f1_keywords dev_langs topic_type api_type api_location api_name
NF:aclui.IEffectivePermission2.ComputeEffectivePermissionWithSecondarySecurity
IEffectivePermission2::ComputeEffectivePermissionWithSecondarySecurity (aclui.h)
Computes the effective permissions by using the secondary security for an object.
ComputeEffectivePermissionWithSecondarySecurity
ComputeEffectivePermissionWithSecondarySecurity method [Security]
ComputeEffectivePermissionWithSecondarySecurity method [Security]
IEffectivePermission2 interface
IEffectivePermission2 interface [Security]
ComputeEffectivePermissionWithSecondarySecurity method
IEffectivePermission2.ComputeEffectivePermissionWithSecondarySecurity
IEffectivePermission2::ComputeEffectivePermissionWithSecondarySecurity
aclui/IEffectivePermission2::ComputeEffectivePermissionWithSecondarySecurity
security.ieffectivepermission2_computeeffectivepermissionwithsecondarysecurity
security\ieffectivepermission2_computeeffectivepermissionwithsecondarysecurity.htm
security
03B73103-D7C0-4BA2-B315-3CC0049B1B8E
12/05/2018
ComputeEffectivePermissionWithSecondarySecurity, ComputeEffectivePermissionWithSecondarySecurity method [Security], ComputeEffectivePermissionWithSecondarySecurity method [Security],IEffectivePermission2 interface, IEffectivePermission2 interface [Security],ComputeEffectivePermissionWithSecondarySecurity method, IEffectivePermission2.ComputeEffectivePermissionWithSecondarySecurity, IEffectivePermission2::ComputeEffectivePermissionWithSecondarySecurity, aclui/IEffectivePermission2::ComputeEffectivePermissionWithSecondarySecurity, security.ieffectivepermission2_computeeffectivepermissionwithsecondarysecurity
aclui.h
Windows
Windows 8 [desktop apps only]
Windows Server 2012 [desktop apps only]
Windows
19H1
IEffectivePermission2::ComputeEffectivePermissionWithSecondarySecurity
aclui/IEffectivePermission2::ComputeEffectivePermissionWithSecondarySecurity
c++
APIRef
kbSyntax
COM
Aclui.h
IEffectivePermission2.ComputeEffectivePermissionWithSecondarySecurity

IEffectivePermission2::ComputeEffectivePermissionWithSecondarySecurity

-description

The ComputeEffectivePermissionWithSecondarySecurity method computes the effective permissions for an object. It supports integrating secondary or custom security policies. You may choose to provide this additional security information by implementing the ISecurityInformation4 interface. This method supports compound identity, which is when a principal's access token contains user and device authorization information.

-parameters

-param pSid [in]

A pointer to a SID structure that represents the security principal whose effective permission is being determined.

-param pDeviceSid [in, optional]

A pointer to a SID structure that represents the device from which the principal is accessing the object. If this is not NULL and you are using the AuthzAccessCheck function to compute the effective permissions, then the device SID may be compounded with the pSid parameter by using the AuthzInitializeCompoundContext function.

-param pszServerName [in, optional]

The name of the server on which the object resides. This is the same name that was returned from the ISecurityInformation::GetObjectInformation method.

-param pSecurityObjects [in]

An array of security objects. This array is composed of objects that were deduced by the access control editor in addition to the ones returned from the ISecurityInformation4::GetSecondarySecurity method.

-param dwSecurityObjectCount [in]

The number of security objects in the pSecurityObjects parameter, and the number of results lists in the pEffpermResultLists parameter.

-param pUserGroups [in, optional]

A pointer to additional user groups that should be used to modify the security context which was initialized from the pSid parameter. If you are using the AuthzAccessCheck function to compute the effective permissions, then the modification may be done by calling the AuthzModifySids function using AuthzContextInfoGroupsSids as the SidClass parameter.

-param pAuthzUserGroupsOperations [in, optional]

Pointer to an array of AUTHZ_SID_OPERATION structures that specify how the user groups in the authz context must be modified for each user group in the pUserGroups argument. This array contains as many elements as the number of groups in the pUserGroups parameter.

-param pDeviceGroups [in, optional]

A pointer to additional device groups that should be used to modify the security context which was initialized from the pSid parameter or one that was created by compounding the contexts that were initialized from the pSid and pDeviceSid parameters. If you are using the AuthzAccessCheck function to compute the effective permissions, then the modification may be done by calling the AuthzModifySids function using AuthzContextInfoDeviceSids as the SidClass parameter.

-param pAuthzDeviceGroupsOperations [in, optional]

Pointer to an array of AUTHZ_SID_OPERATION enumeration types that specify how the device groups in the authz context must be modified for each device group in the pDeviceGroups argument. This array contains as many elements as the number of groups in the pDeviceGroups parameter.

-param pAuthzUserClaims [in, optional]

Pointer to an AUTHZ_SECURITY_ATTRIBUTES_INFORMATION structure that contains the user claims context that should be used to modify the security context that was initialized from the pSid parameter. If you are using the AuthzAccessCheck function to compute the effective permissions, then the modification may be done by calling the AuthzModifyClaims function using AuthzContextInfoUserClaims as the ClaimClass parameter.

-param pAuthzUserClaimsOperations [in, optional]

Pointer to an AUTHZ_SECURITY_ATTRIBUTE_OPERATION enumeration type that specifies the operations associated with the user claims context.

-param pAuthzDeviceClaims [in, optional]

A pointer to the device claims context that should be used to modify the security context that was initialized from the pSid parameter or one that was created by compounding the contexts that were initialized from the pSid and pDeviceSid parameters. This may be supplied by the caller, even if the pDeviceSid parameter is not. If you are using the AuthzAccessCheck function to compute the effective permissions, then the modification may be done by calling the AuthzModifyClaims function using AuthzContextInfoDeviceClaims as the ClaimClass parameter.

-param pAuthzDeviceClaimsOperations [in, optional]

Pointer to an AUTHZ_SECURITY_ATTRIBUTE_OPERATION enumeration type that specifies the operations associated with the device claims context.

-param pEffpermResultLists [in, out]

A pointer to an array of the effective permissions results of type EFFPERM_RESULT_LIST. This array is dwSecurityObjectCount elements long. The array is initialized by the caller and the implementation is expected to set all fields of each member in the array, indicating what access was granted by the corresponding security object.

If a security object was considered, the fEvaluated member should be set to TRUE. In this case, the pObjectTypeList and pGrantedAccessList members should both be cObjectTypeListLength elements long. The pObjectTypeList member must point to memory that is owned by the resource manager and must remain valid until the EditSecurity function exits. The pGrantedAccessList member is freed by the caller by using the LocalFree function. If the resource manager does not support object ACEs, then the pObjectTypeList member should point to the NULL GUID, the cObjectTypeListLength member should be 1, and the pGrantedAccessList member should be a single DWORD.

-returns

If the function is successful, the return value is S_OK.

If the function is successful but returned an approximate result, the return value is S_FALSE.

If the function fails, the return value is an HRESULT that indicates the error. For a list of common error codes, see Common HRESULT Values.

-remarks

When the Id member the SECURITY_OBJECT structure is set to SECURITY_OBJECT_ID_CENTRAL_ACCESS_RULE, the ComputeEffectivePermissionWithSecondarySecurity method should use the pData2 member first and only then evaluate access by using the pData member.

It is expected that the caller will use AuthzAccessCheck to determine the effective permissions. When possible, the implementation should initialize a remote resource manager on the supplied pszServerName member, using the AuthzInitializeRemoteResourceManager function to ensure that the groups and claims are initialized in the same manner as when the principal really accesses the object. If AuthzInitializeRemoteResourceManager fails, the implementation may fall back to using the AuthzInitializeResourceManager function and return S_FALSE to indicate that approximate results are returned.

For each of the secondary security objects whose fEvaluated member is set to TRUE, the access control editor will display which permissions and properties were limited by that object using the pwszName member.

-see-also

AUTHZ_SECURITY_ATTRIBUTE_OPERATION

AuthzInitializeRemoteResourceManager

IEffectivePermission2

ISecurityInformation4::GetSecondarySecurity

SECURITY_OBJECT