IAuthorizationExtension.CheckAccess Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para uma determinada operação.
Sobrecargas
CheckAccess(String, IntPtr, Byte[], CatalogOperation) |
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para uma determinada operação de catálogo. |
CheckAccess(String, IntPtr, Byte[], CatalogOperation[]) |
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para uma determinada matriz de operação de catálogo. |
CheckAccess(String, IntPtr, Byte[], DatasourceOperation) |
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para uma determinada operação de fonte de dados. |
CheckAccess(String, IntPtr, Byte[], FolderOperation) |
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para uma operação de determinada pasta. |
CheckAccess(String, IntPtr, Byte[], FolderOperation[]) |
Inspeciona as credenciais de autorização de um usuário em relação a um descritor de segurança para operações em um item no banco de dados de servidor de relatório |
CheckAccess(String, IntPtr, Byte[], ModelItemOperation) |
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para operação de um determinado item de modelo. |
CheckAccess(String, IntPtr, Byte[], ModelOperation) |
Indica um valor se um usuário está autorizado a acessar um item no banco de dados do servidor de relatório para uma determinada operação de modelo. |
CheckAccess(String, IntPtr, Byte[], ReportOperation) |
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para operação de um determinado relatório. |
CheckAccess(String, IntPtr, Byte[], ResourceOperation) |
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para operação de um determinado recurso. |
CheckAccess(String, IntPtr, Byte[], ResourceOperation[]) |
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para uma determinada matriz de operações de recurso. |
CheckAccess(String, IntPtr, Byte[], CatalogOperation)
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para uma determinada operação de catálogo.
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
Parâmetros
- userName
- String
O nome de usuário que está solicitando acesso ao servidor de relatório.
- userToken
-
IntPtr
nativeint
Um token de conta do usuário. Este token é usado principalmente pelo servidor de relatório como um identificador para uma conta do Microsoft Windows no suporte do gerenciamento de credencial para Autenticação do Windows.
- secDesc
- Byte[]
O descritor de segurança para o item.
- requiredOperation
- CatalogOperation
A operação que está sendo solicitada pelo servidor de relatório para um determinado usuário.
Retornos
Retorna true
se o usuário autenticado atualmente recebe acesso ao item com base na operação fornecida e no descritor de segurança.
Exemplos
O código de exemplo a seguir usa o método [CheckAccess (string, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> para avaliar as credenciais de autorização de um usuário em relação a um descritor de segurança para um item no banco de dados do servidor de relatório.
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;
}
Aplica-se a
CheckAccess(String, IntPtr, Byte[], CatalogOperation[])
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para uma determinada matriz de operação de catálogo.
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
Parâmetros
- userName
- String
O nome de usuário que está solicitando acesso ao servidor de relatório.
- userToken
-
IntPtr
nativeint
Um token de conta do usuário. Este token é usado principalmente pelo servidor de relatório como um identificador para uma conta do Microsoft Windows no suporte do gerenciamento de credencial para Autenticação do Windows.
- secDesc
- Byte[]
O descritor de segurança para o item.
- requiredOperations
- CatalogOperation[]
As operações que estão sendo solicitadas pelo servidor de relatório para um determinado usuário.
Retornos
Retorna true
se o usuário autenticado atualmente recebe acesso ao item com base na operação fornecida e no descritor de segurança.
Exemplos
O código de exemplo a seguir usa o método [CheckAccess (string, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> para avaliar as credenciais de autorização de um usuário em relação a um descritor de segurança para um item no banco de dados do servidor de relatório. O exemplo usa o método overloaded [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> que usa uma única operação como argumento.
' 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;
}
Aplica-se a
CheckAccess(String, IntPtr, Byte[], DatasourceOperation)
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para uma determinada operação de fonte de dados.
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
Parâmetros
- userName
- String
O nome de usuário que está solicitando acesso ao servidor de relatório.
- userToken
-
IntPtr
nativeint
Um token de conta do usuário. Este token é usado principalmente pelo servidor de relatório como um identificador para uma conta do Microsoft Windows no suporte do gerenciamento de credencial para Autenticação do Windows.
- secDesc
- Byte[]
O descritor de segurança para o item.
- requiredOperation
- DatasourceOperation
A operação que está sendo solicitada pelo servidor de relatório para um determinado usuário.
Retornos
Retorna true
se o usuário autenticado atualmente recebe acesso ao item com base na operação fornecida e no descritor de segurança.
Exemplos
O código de exemplo a seguir usa o método [CheckAccess (string, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> para avaliar as credenciais de autorização de um usuário em relação a um descritor de segurança para um item no banco de dados do servidor de relatório.
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;
}
Aplica-se a
CheckAccess(String, IntPtr, Byte[], FolderOperation)
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para uma operação de determinada pasta.
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
Parâmetros
- userName
- String
O nome de usuário que está solicitando acesso ao servidor de relatório.
- userToken
-
IntPtr
nativeint
Um token de conta do usuário. Este token é usado principalmente pelo servidor de relatório como um identificador para uma conta do Microsoft Windows no suporte do gerenciamento de credencial para Autenticação do Windows.
- secDesc
- Byte[]
O descritor de segurança para o item.
- requiredOperation
- FolderOperation
A operação que está sendo solicitada pelo servidor de relatório para um determinado usuário.
Retornos
Retorna true
se o usuário autenticado atualmente recebe acesso ao item com base na operação fornecida e no descritor de segurança.
Exemplos
O código de exemplo a seguir usa o método [CheckAccess (string, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> para avaliar as credenciais de autorização de um usuário em relação a um descritor de segurança para um item no banco de dados do servidor de relatório.
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;
}
Aplica-se a
CheckAccess(String, IntPtr, Byte[], FolderOperation[])
Inspeciona as credenciais de autorização de um usuário em relação a um descritor de segurança para operações em um item no banco de dados de servidor de relatório
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
Parâmetros
- userName
- String
O nome de usuário que está solicitando acesso ao servidor de relatório.
- userToken
-
IntPtr
nativeint
Um token de conta do usuário. Este token é usado principalmente pelo servidor de relatório como um identificador para uma conta do Microsoft Windows no suporte do gerenciamento de credencial para Autenticação do Windows.
- secDesc
- Byte[]
O descritor de segurança para o item.
- requiredOperations
- FolderOperation[]
As operações que estão sendo solicitadas pelo servidor de relatório para um determinado usuário.
Retornos
Retorna true
se o usuário autenticado atualmente recebe acesso ao item com base na operação fornecida e no descritor de segurança.
Exemplos
O código de exemplo a seguir usa o método [CheckAccess (string, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> para avaliar as credenciais de autorização de um usuário em relação a um descritor de segurança para um item no banco de dados do servidor de relatório. O exemplo usa o método overloaded [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> que usa uma única operação como argumento.
' 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;
}
Aplica-se a
CheckAccess(String, IntPtr, Byte[], ModelItemOperation)
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para operação de um determinado item de modelo.
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
Parâmetros
- userName
- String
O nome de usuário que está solicitando acesso ao servidor de relatório.
- userToken
-
IntPtr
nativeint
Um token de conta do usuário. Este token é usado principalmente pelo servidor de relatório como um identificador para uma conta do Microsoft Windows no suporte do gerenciamento de credencial para Autenticação do Windows.
- secDesc
- Byte[]
O descritor de segurança para o item.
- requiredOperation
- ModelItemOperation
As operações que estão sendo solicitadas pelo servidor de relatório para um determinado usuário.
Retornos
Retorna true
se o usuário autenticado atualmente recebe acesso ao item com base na operação fornecida e no descritor de segurança.
Aplica-se a
CheckAccess(String, IntPtr, Byte[], ModelOperation)
Indica um valor se um usuário está autorizado a acessar um item no banco de dados do servidor de relatório para uma determinada operação de modelo.
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
Parâmetros
- userName
- String
O nome de usuário que está solicitando acesso ao servidor de relatório.
- userToken
-
IntPtr
nativeint
Um token de conta do usuário. Este token é usado principalmente pelo servidor de relatório como um identificador para uma conta do Microsoft Windows no suporte do gerenciamento de credencial para Autenticação do Windows.
- secDesc
- Byte[]
O descritor de segurança para o item.
- requiredOperation
- ModelOperation
As operações que estão sendo solicitadas pelo servidor de relatório para um determinado usuário.
Retornos
true
se o usuário autenticado atualmente tiver acesso ao item com base no descritor de segurança e operação fornecido; caso contrário, false
.
Aplica-se a
CheckAccess(String, IntPtr, Byte[], ReportOperation)
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para operação de um determinado relatório.
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
Parâmetros
- userName
- String
O nome de usuário que está solicitando acesso ao servidor de relatório.
- userToken
-
IntPtr
nativeint
Um token de conta do usuário. Este token é usado principalmente pelo servidor de relatório como um identificador para uma conta do Microsoft Windows no suporte do gerenciamento de credencial para Autenticação do Windows.
- secDesc
- Byte[]
O descritor de segurança para o item.
- requiredOperation
- ReportOperation
A operação que está sendo solicitada pelo servidor de relatório para um determinado usuário.
Retornos
Retorna true
se o usuário autenticado atualmente recebe acesso ao item com base na operação fornecida e no descritor de segurança.
Exemplos
O código de exemplo a seguir usa o método [CheckAccess (string, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> para avaliar as credenciais de autorização de um usuário em relação a um descritor de segurança para um item no banco de dados do servidor de relatório.
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;
}
Aplica-se a
CheckAccess(String, IntPtr, Byte[], ResourceOperation)
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para operação de um determinado recurso.
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
Parâmetros
- userName
- String
O nome de usuário que está solicitando acesso ao servidor de relatório.
- userToken
-
IntPtr
nativeint
Um token de conta do usuário. Este token é usado principalmente pelo servidor de relatório como um identificador para uma conta do Microsoft Windows no suporte do gerenciamento de credencial para Autenticação do Windows.
- secDesc
- Byte[]
O descritor de segurança para o item.
- requiredOperation
- ResourceOperation
A operação que está sendo solicitada pelo servidor de relatório para um determinado usuário.
Retornos
Retorna true
se o usuário autenticado atualmente recebe acesso ao item com base na operação fornecida e no descritor de segurança.
Exemplos
O código de exemplo a seguir usa o método [CheckAccess (string, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> para avaliar as credenciais de autorização de um usuário em relação a um descritor de segurança para um item no banco de dados do servidor de relatório.
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;
}
Aplica-se a
CheckAccess(String, IntPtr, Byte[], ResourceOperation[])
Indica se um usuário está autorizado a acessar um item no banco de dados de servidor de relatório para uma determinada matriz de operações de recurso.
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
Parâmetros
- userName
- String
O nome de usuário que está solicitando acesso ao servidor de relatório.
- userToken
-
IntPtr
nativeint
Um token de conta do usuário. Este token é usado principalmente pelo servidor de relatório como um identificador para uma conta do Microsoft Windows no suporte do gerenciamento de credencial para Autenticação do Windows.
- secDesc
- Byte[]
O descritor de segurança para o item.
- requiredOperations
- ResourceOperation[]
As operações que estão sendo solicitadas pelo servidor de relatório para um determinado usuário.
Retornos
Retorna true
se o usuário autenticado atualmente recebe acesso ao item com base na operação fornecida e no descritor de segurança.
Exemplos
O código de exemplo a seguir usa o método [CheckAccess (string, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> para avaliar as credenciais de autorização de um usuário em relação a um descritor de segurança para um item no banco de dados do servidor de relatório. O exemplo usa o método overloaded [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> que usa uma única operação como argumento.
' 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;
}