IAuthorizationExtension.CheckAccess Método

Definición

Indica si un usuario está autorizado para tener acceso a un elemento en la base de datos del servidor de informes para una operación determinada.

Sobrecargas

CheckAccess(String, IntPtr, Byte[], CatalogOperation)

Indica si un usuario está autorizado para tener acceso a un elemento en la base de datos del servidor de informes para una operación de catálogo determinada.

CheckAccess(String, IntPtr, Byte[], CatalogOperation[])

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una matriz de operaciones de catálogo determinadas.

CheckAccess(String, IntPtr, Byte[], DatasourceOperation)

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una operación de origen de datos determinada.

CheckAccess(String, IntPtr, Byte[], FolderOperation)

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una operación de carpeta determinada.

CheckAccess(String, IntPtr, Byte[], FolderOperation[])

Comprueba las credenciales de autorización de un usuario comparándolas con un descriptor de seguridad para las operaciones sobre un elemento de la base de datos del servidor de informes.

CheckAccess(String, IntPtr, Byte[], ModelItemOperation)

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una operación de elemento de modelo determinada.

CheckAccess(String, IntPtr, Byte[], ModelOperation)

Indica un valor si un usuario está autorizado para acceder a un elemento de la base de datos del servidor de informes para una operación de modelo determinada.

CheckAccess(String, IntPtr, Byte[], ReportOperation)

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una operación de informe determinada.

CheckAccess(String, IntPtr, Byte[], ResourceOperation)

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una operación de recurso determinada.

CheckAccess(String, IntPtr, Byte[], ResourceOperation[])

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una matriz de operaciones de recursos determinadas.

CheckAccess(String, IntPtr, Byte[], CatalogOperation)

Indica si un usuario está autorizado para tener acceso a un elemento en la base de datos del servidor de informes para una operación de catálogo determinada.

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

El nombre del usuario que solicita acceso al servidor de informes.

userToken
IntPtr

nativeint

Token de cuenta de usuario. El servidor de informes usa este token principalmente como identificador para una cuenta de Microsoft Windows que admite la administración de credenciales para la autenticación de Windows.

secDesc
Byte[]

El descriptor de seguridad para el elemento.

requiredOperation
CatalogOperation

La operación que está solicitando el servidor de informes para un usuario determinado.

Devoluciones

Devuelve true si el usuario autenticado actualmente tiene acceso al elemento basado en la operación y el descriptor de seguridad proporcionados.

Ejemplos

En el código de ejemplo siguiente se usa el método [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> ) para evaluar las credenciales de autorización de un usuario en un descriptor de seguridad para un elemento de la base de datos del servidor de informes.

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;  
}  

Se aplica a

CheckAccess(String, IntPtr, Byte[], CatalogOperation[])

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una matriz de operaciones de catálogo determinadas.

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

El nombre del usuario que solicita acceso al servidor de informes.

userToken
IntPtr

nativeint

Token de cuenta de usuario. El servidor de informes usa este token principalmente como identificador para una cuenta de Microsoft Windows que admite la administración de credenciales para la autenticación de Windows.

secDesc
Byte[]

El descriptor de seguridad para el elemento.

requiredOperations
CatalogOperation[]

Las operaciones que está solicitando el servidor de informes para un usuario determinado.

Devoluciones

Devuelve true si el usuario autenticado actualmente tiene acceso al elemento basado en la operación y el descriptor de seguridad proporcionados.

Ejemplos

En el código de ejemplo siguiente se usa el método [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> ) para evaluar las credenciales de autorización de un usuario en un descriptor de seguridad para un elemento de la base de datos del servidor de informes. En el ejemplo se usa el método [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> que toma una sola operación 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;   
}  

Se aplica a

CheckAccess(String, IntPtr, Byte[], DatasourceOperation)

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una operación de origen de datos determinada.

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

El nombre del usuario que solicita acceso al servidor de informes.

userToken
IntPtr

nativeint

Token de cuenta de usuario. El servidor de informes usa este token principalmente como identificador para una cuenta de Microsoft Windows que admite la administración de credenciales para la autenticación de Windows.

secDesc
Byte[]

El descriptor de seguridad para el elemento.

requiredOperation
DatasourceOperation

La operación que está solicitando el servidor de informes para un usuario determinado.

Devoluciones

Devuelve true si el usuario autenticado actualmente tiene acceso al elemento basado en la operación y el descriptor de seguridad proporcionados.

Ejemplos

En el código de ejemplo siguiente se usa el método [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> ) para evaluar las credenciales de autorización de un usuario en un descriptor de seguridad para un elemento de la base de datos del servidor de informes.

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;  
}  

Se aplica a

CheckAccess(String, IntPtr, Byte[], FolderOperation)

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una operación de carpeta determinada.

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

El nombre del usuario que solicita acceso al servidor de informes.

userToken
IntPtr

nativeint

Token de cuenta de usuario. El servidor de informes usa este token principalmente como identificador para una cuenta de Microsoft Windows que admite la administración de credenciales para la autenticación de Windows.

secDesc
Byte[]

El descriptor de seguridad para el elemento.

requiredOperation
FolderOperation

La operación que está solicitando el servidor de informes para un usuario determinado.

Devoluciones

Devuelve true si el usuario autenticado actualmente tiene acceso al elemento basado en la operación y el descriptor de seguridad proporcionados.

Ejemplos

En el código de ejemplo siguiente se usa el método [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> ) para evaluar las credenciales de autorización de un usuario en un descriptor de seguridad para un elemento de la base de datos del servidor de informes.

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;  
}  

Se aplica a

CheckAccess(String, IntPtr, Byte[], FolderOperation[])

Comprueba las credenciales de autorización de un usuario comparándolas con un descriptor de seguridad para las operaciones sobre un elemento de la base de datos del servidor de informes.

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

El nombre del usuario que solicita acceso al servidor de informes.

userToken
IntPtr

nativeint

Token de cuenta de usuario. El servidor de informes usa este token principalmente como identificador para una cuenta de Microsoft Windows que admite la administración de credenciales para la autenticación de Windows.

secDesc
Byte[]

El descriptor de seguridad para el elemento.

requiredOperations
FolderOperation[]

Las operaciones que está solicitando el servidor de informes para un usuario determinado.

Devoluciones

Devuelve true si el usuario autenticado actualmente tiene acceso al elemento basado en la operación y el descriptor de seguridad proporcionados.

Ejemplos

En el código de ejemplo siguiente se usa el método [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> ) para evaluar las credenciales de autorización de un usuario en un descriptor de seguridad para un elemento de la base de datos del servidor de informes. En el ejemplo se usa el método [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> que toma una sola operación 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;   
}  

Se aplica a

CheckAccess(String, IntPtr, Byte[], ModelItemOperation)

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una operación de elemento de modelo determinada.

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

El nombre del usuario que solicita acceso al servidor de informes.

userToken
IntPtr

nativeint

Token de cuenta de usuario. El servidor de informes usa este token principalmente como identificador para una cuenta de Microsoft Windows que admite la administración de credenciales para la autenticación de Windows.

secDesc
Byte[]

El descriptor de seguridad para el elemento.

requiredOperation
ModelItemOperation

Las operaciones que está solicitando el servidor de informes para un usuario determinado.

Devoluciones

Devuelve true si el usuario autenticado actualmente tiene acceso al elemento basado en la operación y el descriptor de seguridad proporcionados.

Se aplica a

CheckAccess(String, IntPtr, Byte[], ModelOperation)

Indica un valor si un usuario está autorizado para acceder a un elemento de la base de datos del servidor de informes para una operación de modelo determinada.

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

El nombre del usuario que solicita acceso al servidor de informes.

userToken
IntPtr

nativeint

Token de cuenta de usuario. El servidor de informes usa este token principalmente como identificador para una cuenta de Microsoft Windows que admite la administración de credenciales para la autenticación de Windows.

secDesc
Byte[]

El descriptor de seguridad para el elemento.

requiredOperation
ModelOperation

Las operaciones que está solicitando el servidor de informes para un usuario determinado.

Devoluciones

true si se concede acceso al usuario autenticado actualmente al elemento en función de la operación proporcionada y el descriptor de seguridad; de lo contrario, false.

Se aplica a

CheckAccess(String, IntPtr, Byte[], ReportOperation)

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una operación de informe determinada.

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

El nombre del usuario que solicita acceso al servidor de informes.

userToken
IntPtr

nativeint

Token de cuenta de usuario. El servidor de informes usa este token principalmente como identificador para una cuenta de Microsoft Windows que admite la administración de credenciales para la autenticación de Windows.

secDesc
Byte[]

El descriptor de seguridad para el elemento.

requiredOperation
ReportOperation

La operación que está solicitando el servidor de informes para un usuario determinado.

Devoluciones

Devuelve true si el usuario autenticado actualmente tiene acceso al elemento basado en la operación y el descriptor de seguridad proporcionados.

Ejemplos

En el código de ejemplo siguiente se usa el método [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> ) para evaluar las credenciales de autorización de un usuario en un descriptor de seguridad para un elemento de la base de datos del servidor de informes.

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;  
}  

Se aplica a

CheckAccess(String, IntPtr, Byte[], ResourceOperation)

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una operación de recurso determinada.

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

El nombre del usuario que solicita acceso al servidor de informes.

userToken
IntPtr

nativeint

Token de cuenta de usuario. El servidor de informes usa este token principalmente como identificador para una cuenta de Microsoft Windows que admite la administración de credenciales para la autenticación de Windows.

secDesc
Byte[]

El descriptor de seguridad para el elemento.

requiredOperation
ResourceOperation

La operación que está solicitando el servidor de informes para un usuario determinado.

Devoluciones

Devuelve true si el usuario autenticado actualmente tiene acceso al elemento basado en la operación y el descriptor de seguridad proporcionados.

Ejemplos

En el código de ejemplo siguiente se usa el método [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> ) para evaluar las credenciales de autorización de un usuario en un descriptor de seguridad para un elemento de la base de datos del servidor de informes.

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;  
}  

Se aplica a

CheckAccess(String, IntPtr, Byte[], ResourceOperation[])

Indica si un usuario está autorizado para tener acceso a un elemento de la base de datos del servidor de informes para una matriz de operaciones de recursos determinadas.

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

El nombre del usuario que solicita acceso al servidor de informes.

userToken
IntPtr

nativeint

Token de cuenta de usuario. El servidor de informes usa este token principalmente como identificador para una cuenta de Microsoft Windows que admite la administración de credenciales para la autenticación de Windows.

secDesc
Byte[]

El descriptor de seguridad para el elemento.

requiredOperations
ResourceOperation[]

Las operaciones que está solicitando el servidor de informes para un usuario determinado.

Devoluciones

Devuelve true si el usuario autenticado actualmente tiene acceso al elemento basado en la operación y el descriptor de seguridad proporcionados.

Ejemplos

En el código de ejemplo siguiente se usa el método [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> ) para evaluar las credenciales de autorización de un usuario en un descriptor de seguridad para un elemento de la base de datos del servidor de informes. En el ejemplo se usa el método [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> que toma una sola operación 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;   
}  

Se aplica a