IAuthorizationExtension.CheckAccess 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
사용자에게 지정된 작업을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다.
오버로드
CheckAccess(String, IntPtr, Byte[], CatalogOperation) |
사용자에게 지정된 카탈로그 작업을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다. |
CheckAccess(String, IntPtr, Byte[], CatalogOperation[]) |
사용자에게 지정된 카탈로그 작업 배열을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다. |
CheckAccess(String, IntPtr, Byte[], DatasourceOperation) |
사용자에게 지정된 데이터 원본 작업을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다. |
CheckAccess(String, IntPtr, Byte[], FolderOperation) |
사용자에게 지정된 폴더 작업을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다. |
CheckAccess(String, IntPtr, Byte[], FolderOperation[]) |
보고서 서버 데이터베이스에 있는 항목에 대한 작업을 위해 보안 설명자를 기준으로 사용자의 권한 부여 자격 증명을 확인합니다. |
CheckAccess(String, IntPtr, Byte[], ModelItemOperation) |
사용자에게 지정된 모델 항목 작업을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다. |
CheckAccess(String, IntPtr, Byte[], ModelOperation) |
사용자가 지정된 모델 작업에 대해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타내는 값입니다. |
CheckAccess(String, IntPtr, Byte[], ReportOperation) |
사용자에게 지정된 보고서 작업을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다. |
CheckAccess(String, IntPtr, Byte[], ResourceOperation) |
사용자에게 지정된 리소스 작업을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다. |
CheckAccess(String, IntPtr, Byte[], ResourceOperation[]) |
사용자에게 지정된 리소스 작업 배열을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다. |
CheckAccess(String, IntPtr, Byte[], CatalogOperation)
사용자에게 지정된 카탈로그 작업을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::CatalogOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.CatalogOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.CatalogOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As CatalogOperation) As Boolean
매개 변수
- userName
- String
보고서 서버에 대한 액세스 권한을 요청하는 사용자의 이름입니다.
- userToken
-
IntPtr
nativeint
사용자 계정 토큰입니다. 이 토큰은 주로 보고서 서버에서 Windows 인증용 자격 증명 관리를 지원하기 위해 Microsoft Windows 계정에 대한 핸들로 사용됩니다.
- secDesc
- Byte[]
항목에 대한 보안 설명자입니다.
- requiredOperation
- CatalogOperation
보고서 서버에서 지정된 사용자에 대해 요청하는 작업입니다.
반환
현재 인증된 사용자가 제공된 작업 및 보안 설명자를 기반으로 하는 항목에 대한 액세스 권한을 부여받았으면 true
를 반환합니다.
예제
다음 예제 코드는 [CheckAccess 메서드(String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> 메서드)를 사용하여 보고서 서버 데이터베이스의 항목에 대한 보안 설명자에 대해 사용자의 권한 부여 자격 증명을 평가합니다.
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperation As CatalogOperation) As Boolean
Dim acl As AceCollection = DeserializeAcl(secDesc)
Dim ace As AceStruct
For Each ace In acl
' First check to see if the user or group has an access control entry for the item
If userName = ace.PrincipalName Then
' If an entry is found, return true if the given required operation
' is contained in the ACE structure.
Dim aclOperation As CatalogOperation
For Each aclOperation In ace.CatalogOperations
If aclOperation = requiredOperation Then
Return True
End If
Next aclOperation
End If
Next ace
Return False
End Function 'CheckAccess
Private Function DeserializeAcl(secDesc() As Byte) As AceCollection
Dim bf As New BinaryFormatter()
Dim sdStream As New MemoryStream(secDesc)
Dim acl As AceCollection = CType(bf.Deserialize(sdStream), AceCollection)
Return acl
End Function 'DeserializeAcl
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, CatalogOperation requiredOperation)
{
AceCollection acl = DeserializeAcl(secDesc);
foreach(AceStruct ace in acl)
{
// First check to see if the user or group has an access control entry for the item
if (userName == ace.PrincipalName)
{
// If an entry is found, return true if the given required operation
// is contained in the ACE structure.
foreach(CatalogOperation aclOperation in ace.CatalogOperations)
{
if (aclOperation == requiredOperation)
return true;
}
}
}
return false;
}
private AceCollection DeserializeAcl(byte[] secDesc)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream sdStream = new MemoryStream(secDesc);
AceCollection acl = (AceCollection)bf.Deserialize(sdStream);
return acl;
}
적용 대상
CheckAccess(String, IntPtr, Byte[], CatalogOperation[])
사용자에게 지정된 카탈로그 작업 배열을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, cli::array <Microsoft::ReportingServices::Interfaces::CatalogOperation> ^ requiredOperations);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.CatalogOperation[] requiredOperations);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.CatalogOperation[] -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperations As CatalogOperation()) As Boolean
매개 변수
- userName
- String
보고서 서버에 대한 액세스 권한을 요청하는 사용자의 이름입니다.
- userToken
-
IntPtr
nativeint
사용자 계정 토큰입니다. 이 토큰은 주로 보고서 서버에서 Windows 인증용 자격 증명 관리를 지원하기 위해 Microsoft Windows 계정에 대한 핸들로 사용됩니다.
- secDesc
- Byte[]
항목에 대한 보안 설명자입니다.
- requiredOperations
- CatalogOperation[]
보고서 서버에서 지정된 사용자에 대해 요청하는 작업입니다.
반환
현재 인증된 사용자가 제공된 작업 및 보안 설명자를 기반으로 하는 항목에 대한 액세스 권한을 부여받았으면 true
를 반환합니다.
예제
다음 예제 코드는 [CheckAccess 메서드(String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> 메서드)를 사용하여 보고서 서버 데이터베이스의 항목에 대한 보안 설명자에 대해 사용자의 권한 부여 자격 증명을 평가합니다. 이 예제에서는 단일 작업을 인수로 사용하는 오버로드된 [CheckAccess 메서드(String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> 메서드)를 사용합니다.
' Overload for array of catalog operations
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperations() As CatalogOperation) As Boolean
Dim operation As CatalogOperation
For Each operation In requiredOperations
If Not CheckAccess(userName, userToken, secDesc, operation) Then
Return False
End If
Next operation
Return True
End Function 'CheckAccess
// Overload for array of catalog operations
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, CatalogOperation[] requiredOperations)
{
foreach(CatalogOperation operation in requiredOperations)
{
if (!CheckAccess(userName, userToken, secDesc, operation))
return false;
}
return true;
}
적용 대상
CheckAccess(String, IntPtr, Byte[], DatasourceOperation)
사용자에게 지정된 데이터 원본 작업을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::DatasourceOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.DatasourceOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.DatasourceOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As DatasourceOperation) As Boolean
매개 변수
- userName
- String
보고서 서버에 대한 액세스 권한을 요청하는 사용자의 이름입니다.
- userToken
-
IntPtr
nativeint
사용자 계정 토큰입니다. 이 토큰은 주로 보고서 서버에서 Windows 인증용 자격 증명 관리를 지원하기 위해 Microsoft Windows 계정에 대한 핸들로 사용됩니다.
- secDesc
- Byte[]
항목에 대한 보안 설명자입니다.
- requiredOperation
- DatasourceOperation
보고서 서버에서 지정된 사용자에 대해 요청하는 작업입니다.
반환
현재 인증된 사용자가 제공된 작업 및 보안 설명자를 기반으로 하는 항목에 대한 액세스 권한을 부여받았으면 true
를 반환합니다.
예제
다음 예제 코드는 [CheckAccess 메서드(String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> 메서드)를 사용하여 보고서 서버 데이터베이스의 항목에 대한 보안 설명자에 대해 사용자의 권한 부여 자격 증명을 평가합니다.
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperation As DatasourceOperation) As Boolean
Dim acl As AceCollection = DeserializeAcl(secDesc)
Dim ace As AceStruct
For Each ace In acl
' First check to see if the user or group has an access control entry for the item
If userName = ace.PrincipalName Then
' If an entry is found, return true if the given required operation
' is contained in the ACE structure.
Dim aclOperation As DatasourceOperation
For Each aclOperation In ace.DatasourceOperations
If aclOperation = requiredOperation Then
Return True
End If
Next aclOperation
End If
Next ace
Return False
End Function 'CheckAccess
Private Function DeserializeAcl(secDesc() As Byte) As AceCollection
Dim bf As New BinaryFormatter()
Dim sdStream As New MemoryStream(secDesc)
Dim acl As AceCollection = CType(bf.Deserialize(sdStream), AceCollection)
Return acl
End Function 'DeserializeAcl
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, DatasourceOperation requiredOperation)
{
AceCollection acl = DeserializeAcl(secDesc);
foreach(AceStruct ace in acl)
{
// First check to see if the user or group has an access control entry for the item
if (userName == ace.PrincipalName)
{
// If an entry is found, return true if the given required operation
// is contained in the ACE structure.
foreach(DatasourceOperation aclOperation in ace.DatasourceOperations)
{
if (aclOperation == requiredOperation)
return true;
}
}
}
return false;
}
private AceCollection DeserializeAcl(byte[] secDesc)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream sdStream = new MemoryStream(secDesc);
AceCollection acl = (AceCollection)bf.Deserialize(sdStream);
return acl;
}
적용 대상
CheckAccess(String, IntPtr, Byte[], FolderOperation)
사용자에게 지정된 폴더 작업을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::FolderOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.FolderOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.FolderOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As FolderOperation) As Boolean
매개 변수
- userName
- String
보고서 서버에 대한 액세스 권한을 요청하는 사용자의 이름입니다.
- userToken
-
IntPtr
nativeint
사용자 계정 토큰입니다. 이 토큰은 주로 보고서 서버에서 Windows 인증용 자격 증명 관리를 지원하기 위해 Microsoft Windows 계정에 대한 핸들로 사용됩니다.
- secDesc
- Byte[]
항목에 대한 보안 설명자입니다.
- requiredOperation
- FolderOperation
보고서 서버에서 지정된 사용자에 대해 요청하는 작업입니다.
반환
현재 인증된 사용자가 제공된 작업 및 보안 설명자를 기반으로 하는 항목에 대한 액세스 권한을 부여받았으면 true
를 반환합니다.
예제
다음 예제 코드는 [CheckAccess 메서드(String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> 메서드)를 사용하여 보고서 서버 데이터베이스의 항목에 대한 보안 설명자에 대해 사용자의 권한 부여 자격 증명을 평가합니다.
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperation As FolderOperation) As Boolean
Dim acl As AceCollection = DeserializeAcl(secDesc)
Dim ace As AceStruct
For Each ace In acl
' First check to see if the user or group has an access control entry for the item
If userName = ace.PrincipalName Then
' If an entry is found, return true if the given required operation
' is contained in the ACE structure.
Dim aclOperation As FolderOperation
For Each aclOperation In ace.FolderOperations
If aclOperation = requiredOperation Then
Return True
End If
Next aclOperation
End If
Next ace
Return False
End Function 'CheckAccess
Private Function DeserializeAcl(secDesc() As Byte) As AceCollection
Dim bf As New BinaryFormatter()
Dim sdStream As New MemoryStream(secDesc)
Dim acl As AceCollection = CType(bf.Deserialize(sdStream), AceCollection)
Return acl
End Function 'DeserializeAcl
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, FolderOperation requiredOperation)
{
AceCollection acl = DeserializeAcl(secDesc);
foreach(AceStruct ace in acl)
{
// First check to see if the user or group has an access control entry for the item
if (userName == ace.PrincipalName)
{
// If an entry is found, return true if the given required operation
// is contained in the ACE structure.
foreach(FolderOperation aclOperation in ace.FolderOperations)
{
if (aclOperation == requiredOperation)
return true;
}
}
}
return false;
}
private AceCollection DeserializeAcl(byte[] secDesc)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream sdStream = new MemoryStream(secDesc);
AceCollection acl = (AceCollection)bf.Deserialize(sdStream);
return acl;
}
적용 대상
CheckAccess(String, IntPtr, Byte[], FolderOperation[])
보고서 서버 데이터베이스에 있는 항목에 대한 작업을 위해 보안 설명자를 기준으로 사용자의 권한 부여 자격 증명을 확인합니다.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, cli::array <Microsoft::ReportingServices::Interfaces::FolderOperation> ^ requiredOperations);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.FolderOperation[] requiredOperations);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.FolderOperation[] -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperations As FolderOperation()) As Boolean
매개 변수
- userName
- String
보고서 서버에 대한 액세스 권한을 요청하는 사용자의 이름입니다.
- userToken
-
IntPtr
nativeint
사용자 계정 토큰입니다. 이 토큰은 주로 보고서 서버에서 Windows 인증용 자격 증명 관리를 지원하기 위해 Microsoft Windows 계정에 대한 핸들로 사용됩니다.
- secDesc
- Byte[]
항목에 대한 보안 설명자입니다.
- requiredOperations
- FolderOperation[]
보고서 서버에서 지정된 사용자에 대해 요청하는 작업입니다.
반환
현재 인증된 사용자가 제공된 작업 및 보안 설명자를 기반으로 하는 항목에 대한 액세스 권한을 부여받았으면 true
를 반환합니다.
예제
다음 예제 코드는 [CheckAccess 메서드(String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> 메서드)를 사용하여 보고서 서버 데이터베이스의 항목에 대한 보안 설명자에 대해 사용자의 권한 부여 자격 증명을 평가합니다. 이 예제에서는 단일 작업을 인수로 사용하는 오버로드된 [CheckAccess 메서드(String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> 메서드)를 사용합니다.
' Overload for array of folder operations
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperations() As FolderOperation) As Boolean
Dim operation As FolderOperation
For Each operation In requiredOperations
If Not CheckAccess(userName, userToken, secDesc, operation) Then
Return False
End If
Next operation
Return True
End Function 'CheckAccess
// Overload for array of folder operations
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, FolderOperation[] requiredOperations)
{
foreach(FolderOperation operation in requiredOperations)
{
if (!CheckAccess(userName, userToken, secDesc, operation))
return false;
}
return true;
}
적용 대상
CheckAccess(String, IntPtr, Byte[], ModelItemOperation)
사용자에게 지정된 모델 항목 작업을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::ModelItemOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.ModelItemOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.ModelItemOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As ModelItemOperation) As Boolean
매개 변수
- userName
- String
보고서 서버에 대한 액세스 권한을 요청하는 사용자의 이름입니다.
- userToken
-
IntPtr
nativeint
사용자 계정 토큰입니다. 이 토큰은 주로 보고서 서버에서 Windows 인증용 자격 증명 관리를 지원하기 위해 Microsoft Windows 계정에 대한 핸들로 사용됩니다.
- secDesc
- Byte[]
항목에 대한 보안 설명자입니다.
- requiredOperation
- ModelItemOperation
보고서 서버에서 지정된 사용자에 대해 요청하는 작업입니다.
반환
현재 인증된 사용자가 제공된 작업 및 보안 설명자를 기반으로 하는 항목에 대한 액세스 권한을 부여받았으면 true
를 반환합니다.
적용 대상
CheckAccess(String, IntPtr, Byte[], ModelOperation)
사용자가 지정된 모델 작업에 대해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타내는 값입니다.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::ModelOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.ModelOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.ModelOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As ModelOperation) As Boolean
매개 변수
- userName
- String
보고서 서버에 대한 액세스 권한을 요청하는 사용자의 이름입니다.
- userToken
-
IntPtr
nativeint
사용자 계정 토큰입니다. 이 토큰은 주로 보고서 서버에서 Windows 인증용 자격 증명 관리를 지원하기 위해 Microsoft Windows 계정에 대한 핸들로 사용됩니다.
- secDesc
- Byte[]
항목에 대한 보안 설명자입니다.
- requiredOperation
- ModelOperation
보고서 서버에서 지정된 사용자에 대해 요청하는 작업입니다.
반환
true
현재 인증된 사용자에게 제공된 작업 및 보안 설명자에 따라 항목에 대한 액세스 권한이 부여되면 이고, 그렇지 않으면 . false
적용 대상
CheckAccess(String, IntPtr, Byte[], ReportOperation)
사용자에게 지정된 보고서 작업을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::ReportOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.ReportOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.ReportOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As ReportOperation) As Boolean
매개 변수
- userName
- String
보고서 서버에 대한 액세스 권한을 요청하는 사용자의 이름입니다.
- userToken
-
IntPtr
nativeint
사용자 계정 토큰입니다. 이 토큰은 주로 보고서 서버에서 Windows 인증용 자격 증명 관리를 지원하기 위해 Microsoft Windows 계정에 대한 핸들로 사용됩니다.
- secDesc
- Byte[]
항목에 대한 보안 설명자입니다.
- requiredOperation
- ReportOperation
보고서 서버에서 지정된 사용자에 대해 요청하는 작업입니다.
반환
현재 인증된 사용자가 제공된 작업 및 보안 설명자를 기반으로 하는 항목에 대한 액세스 권한을 부여받았으면 true
를 반환합니다.
예제
다음 예제 코드는 [CheckAccess 메서드(String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> 메서드)를 사용하여 보고서 서버 데이터베이스의 항목에 대한 보안 설명자에 대해 사용자의 권한 부여 자격 증명을 평가합니다.
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperation As ReportOperation) As Boolean
Dim acl As AceCollection = DeserializeAcl(secDesc)
Dim ace As AceStruct
For Each ace In acl
' First check to see if the user or group has an access control entry for the item
If userName = ace.PrincipalName Then
' If an entry is found, return true if the given required operation
' is contained in the ACE structure.
Dim aclOperation As ReportOperation
For Each aclOperation In ace.ReportOperations
If aclOperation = requiredOperation Then
Return True
End If
Next aclOperation
End If
Next ace
Return False
End Function 'CheckAccess
Private Function DeserializeAcl(secDesc() As Byte) As AceCollection
Dim bf As New BinaryFormatter()
Dim sdStream As New MemoryStream(secDesc)
Dim acl As AceCollection = CType(bf.Deserialize(sdStream), AceCollection)
Return acl
End Function 'DeserializeAcl
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, ReportOperation requiredOperation)
{
AceCollection acl = DeserializeAcl(secDesc);
foreach(AceStruct ace in acl)
{
// First check to see if the user or group has an access control entry for the item
if (userName == ace.PrincipalName)
{
// If an entry is found, return true if the given required operation
// is contained in the ACE structure.
foreach(ReportOperation aclOperation in ace.ReportOperations)
{
if (aclOperation == requiredOperation)
return true;
}
}
}
return false;
}
private AceCollection DeserializeAcl(byte[] secDesc)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream sdStream = new MemoryStream(secDesc);
AceCollection acl = (AceCollection)bf.Deserialize(sdStream);
return acl;
}
적용 대상
CheckAccess(String, IntPtr, Byte[], ResourceOperation)
사용자에게 지정된 리소스 작업을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::ResourceOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.ResourceOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.ResourceOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As ResourceOperation) As Boolean
매개 변수
- userName
- String
보고서 서버에 대한 액세스 권한을 요청하는 사용자의 이름입니다.
- userToken
-
IntPtr
nativeint
사용자 계정 토큰입니다. 이 토큰은 주로 보고서 서버에서 Windows 인증용 자격 증명 관리를 지원하기 위해 Microsoft Windows 계정에 대한 핸들로 사용됩니다.
- secDesc
- Byte[]
항목에 대한 보안 설명자입니다.
- requiredOperation
- ResourceOperation
보고서 서버에서 지정된 사용자에 대해 요청하는 작업입니다.
반환
현재 인증된 사용자가 제공된 작업 및 보안 설명자를 기반으로 하는 항목에 대한 액세스 권한을 부여받았으면 true
를 반환합니다.
예제
다음 예제 코드는 [CheckAccess 메서드(String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> 메서드)를 사용하여 보고서 서버 데이터베이스의 항목에 대한 보안 설명자에 대해 사용자의 권한 부여 자격 증명을 평가합니다.
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperation As ResourceOperation) As Boolean
Dim acl As AceCollection = DeserializeAcl(secDesc)
Dim ace As AceStruct
For Each ace In acl
' First check to see if the user or group has an access control entry for the item
If userName = ace.PrincipalName Then
' If an entry is found, return true if the given required operation
' is contained in the ACE structure.
Dim aclOperation As ResourceOperation
For Each aclOperation In ace.ResourceOperations
If aclOperation = requiredOperation Then
Return True
End If
Next aclOperation
End If
Next ace
Return False
End Function 'CheckAccess
Private Function DeserializeAcl(secDesc() As Byte) As AceCollection
Dim bf As New BinaryFormatter()
Dim sdStream As New MemoryStream(secDesc)
Dim acl As AceCollection = CType(bf.Deserialize(sdStream), AceCollection)
Return acl
End Function 'DeserializeAcl
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, ResourceOperation requiredOperation)
{
AceCollection acl = DeserializeAcl(secDesc);
foreach(AceStruct ace in acl)
{
// First check to see if the user or group has an access control entry for the item
if (userName == ace.PrincipalName)
{
// If an entry is found, return true if the given required operation
// is contained in the ACE structure.
foreach(ResourceOperation aclOperation in ace.ResourceOperations)
{
if (aclOperation == requiredOperation)
return true;
}
}
}
return false;
}
private AceCollection DeserializeAcl(byte[] secDesc)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream sdStream = new MemoryStream(secDesc);
AceCollection acl = (AceCollection)bf.Deserialize(sdStream);
return acl;
}
적용 대상
CheckAccess(String, IntPtr, Byte[], ResourceOperation[])
사용자에게 지정된 리소스 작업 배열을 위해 보고서 서버 데이터베이스의 항목에 액세스할 수 있는 권한이 있는지 여부를 나타냅니다.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, cli::array <Microsoft::ReportingServices::Interfaces::ResourceOperation> ^ requiredOperations);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.ResourceOperation[] requiredOperations);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.ResourceOperation[] -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperations As ResourceOperation()) As Boolean
매개 변수
- userName
- String
보고서 서버에 대한 액세스 권한을 요청하는 사용자의 이름입니다.
- userToken
-
IntPtr
nativeint
사용자 계정 토큰입니다. 이 토큰은 주로 보고서 서버에서 Windows 인증용 자격 증명 관리를 지원하기 위해 Microsoft Windows 계정에 대한 핸들로 사용됩니다.
- secDesc
- Byte[]
항목에 대한 보안 설명자입니다.
- requiredOperations
- ResourceOperation[]
보고서 서버에서 지정된 사용자에 대해 요청하는 작업입니다.
반환
현재 인증된 사용자가 제공된 작업 및 보안 설명자를 기반으로 하는 항목에 대한 액세스 권한을 부여받았으면 true
를 반환합니다.
예제
다음 예제 코드는 [CheckAccess 메서드(String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> 메서드)를 사용하여 보고서 서버 데이터베이스의 항목에 대한 보안 설명자에 대해 사용자의 권한 부여 자격 증명을 평가합니다. 이 예제에서는 단일 작업을 인수로 사용하는 오버로드된 [CheckAccess 메서드(String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> 메서드)를 사용합니다.
' Overload for array of resource operations
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperations() As ResourceOperation) As Boolean
Dim operation As ResourceOperation
For Each operation In requiredOperations
If Not CheckAccess(userName, userToken, secDesc, operation) Then
Return False
End If
Next operation
Return True
End Function 'CheckAccess
// Overload for array of resource operations
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, ResourceOperation[] requiredOperations)
{
foreach(ResourceOperation operation in requiredOperations)
{
if (!CheckAccess(userName, userToken, secDesc, operation))
return false;
}
return true;
}