IAuthorizationExtension.CheckAccess Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération donnée.
Surcharges
CheckAccess(String, IntPtr, Byte[], CatalogOperation) |
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de catalogue donnée. |
CheckAccess(String, IntPtr, Byte[], CatalogOperation[]) |
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de tableau de catalogue donnée. |
CheckAccess(String, IntPtr, Byte[], DatasourceOperation) |
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de source de données spécifique. |
CheckAccess(String, IntPtr, Byte[], FolderOperation) |
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de dossier donnée. |
CheckAccess(String, IntPtr, Byte[], FolderOperation[]) |
Compare les informations d'identification d'un utilisateur avec un descripteur de sécurité pour les opérations sur un élément de la base de données du serveur de rapports. |
CheckAccess(String, IntPtr, Byte[], ModelItemOperation) |
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération d'élément de modèle donnée. |
CheckAccess(String, IntPtr, Byte[], ModelOperation) |
Indique une valeur indiquant si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de modèle donnée. |
CheckAccess(String, IntPtr, Byte[], ReportOperation) |
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de rapport donnée. |
CheckAccess(String, IntPtr, Byte[], ResourceOperation) |
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de ressource donnée. |
CheckAccess(String, IntPtr, Byte[], ResourceOperation[]) |
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour un tableau d'opérations de ressource donné. |
CheckAccess(String, IntPtr, Byte[], CatalogOperation)
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de catalogue donnée.
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
Paramètres
- userName
- String
Nom de l'utilisateur qui demande l'accès au serveur de rapports.
- userToken
-
IntPtr
nativeint
Jeton d'un compte utilisateur. Ce jeton est principalement utilisé par le serveur de rapports en tant que handle d'un compte Microsoft Windows afin de prendre en charge la gestion des informations d'identification pour l'authentification Windows.
- secDesc
- Byte[]
Descripteur de sécurité de l'élément.
- requiredOperation
- CatalogOperation
Opération demandée par le serveur de rapports pour un utilisateur donné.
Retours
Retourne la valeur true
si l'utilisateur actuellement authentifié est autorisé à accéder à l'élément en fonction de l'opération et du descripteur de sécurité fournis.
Exemples
L’exemple de code suivant utilise la méthode [CheckAccess, String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> pour évaluer les informations d’identification d’autorisation d’un utilisateur par rapport à un descripteur de sécurité pour un élément dans la base de données du serveur de rapports.
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;
}
S’applique à
CheckAccess(String, IntPtr, Byte[], CatalogOperation[])
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de tableau de catalogue donnée.
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
Paramètres
- userName
- String
Nom de l'utilisateur qui demande l'accès au serveur de rapports.
- userToken
-
IntPtr
nativeint
Jeton d'un compte utilisateur. Ce jeton est principalement utilisé par le serveur de rapports en tant que handle d'un compte Microsoft Windows afin de prendre en charge la gestion des informations d'identification pour l'authentification Windows.
- secDesc
- Byte[]
Descripteur de sécurité de l'élément.
- requiredOperations
- CatalogOperation[]
Opérations demandées par le serveur de rapports pour un utilisateur donné.
Retours
Retourne la valeur true
si l'utilisateur actuellement authentifié est autorisé à accéder à l'élément en fonction de l'opération et du descripteur de sécurité fournis.
Exemples
L’exemple de code suivant utilise la méthode [CheckAccess, String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> pour évaluer les informations d’identification d’autorisation d’un utilisateur par rapport à un descripteur de sécurité pour un élément dans la base de données du serveur de rapports. L’exemple utilise la méthode CheckAccess surchargée (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> qui prend une seule opération comme argument.
' 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;
}
S’applique à
CheckAccess(String, IntPtr, Byte[], DatasourceOperation)
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de source de données spécifique.
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
Paramètres
- userName
- String
Nom de l'utilisateur qui demande l'accès au serveur de rapports.
- userToken
-
IntPtr
nativeint
Jeton d'un compte utilisateur. Ce jeton est principalement utilisé par le serveur de rapports en tant que handle d'un compte Microsoft Windows afin de prendre en charge la gestion des informations d'identification pour l'authentification Windows.
- secDesc
- Byte[]
Descripteur de sécurité de l'élément.
- requiredOperation
- DatasourceOperation
Opération demandée par le serveur de rapports pour un utilisateur donné.
Retours
Retourne la valeur true
si l'utilisateur actuellement authentifié est autorisé à accéder à l'élément en fonction de l'opération et du descripteur de sécurité fournis.
Exemples
L’exemple de code suivant utilise la méthode [CheckAccess, String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> pour évaluer les informations d’identification d’autorisation d’un utilisateur par rapport à un descripteur de sécurité pour un élément dans la base de données du serveur de rapports.
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;
}
S’applique à
CheckAccess(String, IntPtr, Byte[], FolderOperation)
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de dossier donnée.
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
Paramètres
- userName
- String
Nom de l'utilisateur qui demande l'accès au serveur de rapports.
- userToken
-
IntPtr
nativeint
Jeton d'un compte utilisateur. Ce jeton est principalement utilisé par le serveur de rapports en tant que handle d'un compte Microsoft Windows afin de prendre en charge la gestion des informations d'identification pour l'authentification Windows.
- secDesc
- Byte[]
Descripteur de sécurité de l'élément.
- requiredOperation
- FolderOperation
Opération demandée par le serveur de rapports pour un utilisateur donné.
Retours
Retourne la valeur true
si l'utilisateur actuellement authentifié est autorisé à accéder à l'élément en fonction de l'opération et du descripteur de sécurité fournis.
Exemples
L’exemple de code suivant utilise la méthode [CheckAccess, String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> pour évaluer les informations d’identification d’autorisation d’un utilisateur par rapport à un descripteur de sécurité pour un élément dans la base de données du serveur de rapports.
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;
}
S’applique à
CheckAccess(String, IntPtr, Byte[], FolderOperation[])
Compare les informations d'identification d'un utilisateur avec un descripteur de sécurité pour les opérations sur un élément de la base de données du serveur de rapports.
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
Paramètres
- userName
- String
Nom de l'utilisateur qui demande l'accès au serveur de rapports.
- userToken
-
IntPtr
nativeint
Jeton d'un compte utilisateur. Ce jeton est principalement utilisé par le serveur de rapports en tant que handle d'un compte Microsoft Windows afin de prendre en charge la gestion des informations d'identification pour l'authentification Windows.
- secDesc
- Byte[]
Descripteur de sécurité de l'élément.
- requiredOperations
- FolderOperation[]
Opérations demandées par le serveur de rapports pour un utilisateur donné.
Retours
Retourne la valeur true
si l'utilisateur actuellement authentifié est autorisé à accéder à l'élément en fonction de l'opération et du descripteur de sécurité fournis.
Exemples
L’exemple de code suivant utilise la méthode [CheckAccess, String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> pour évaluer les informations d’identification d’autorisation d’un utilisateur par rapport à un descripteur de sécurité pour un élément dans la base de données du serveur de rapports. L’exemple utilise la méthode CheckAccess surchargée (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> qui prend une seule opération comme argument.
' 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;
}
S’applique à
CheckAccess(String, IntPtr, Byte[], ModelItemOperation)
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération d'élément de modèle donnée.
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
Paramètres
- userName
- String
Nom de l'utilisateur qui demande l'accès au serveur de rapports.
- userToken
-
IntPtr
nativeint
Jeton d'un compte utilisateur. Ce jeton est principalement utilisé par le serveur de rapports en tant que handle d'un compte Microsoft Windows afin de prendre en charge la gestion des informations d'identification pour l'authentification Windows.
- secDesc
- Byte[]
Descripteur de sécurité de l'élément.
- requiredOperation
- ModelItemOperation
Opérations demandées par le serveur de rapports pour un utilisateur donné.
Retours
Retourne la valeur true
si l'utilisateur actuellement authentifié est autorisé à accéder à l'élément en fonction de l'opération et du descripteur de sécurité fournis.
S’applique à
CheckAccess(String, IntPtr, Byte[], ModelOperation)
Indique une valeur indiquant si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de modèle donnée.
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
Paramètres
- userName
- String
Nom de l'utilisateur qui demande l'accès au serveur de rapports.
- userToken
-
IntPtr
nativeint
Jeton d'un compte utilisateur. Ce jeton est principalement utilisé par le serveur de rapports en tant que handle d'un compte Microsoft Windows afin de prendre en charge la gestion des informations d'identification pour l'authentification Windows.
- secDesc
- Byte[]
Descripteur de sécurité de l'élément.
- requiredOperation
- ModelOperation
Opérations demandées par le serveur de rapports pour un utilisateur donné.
Retours
true
si l’utilisateur actuellement authentifié est autorisé à accéder à l’élément en fonction de l’opération fournie et du descripteur de sécurité; sinon, false
.
S’applique à
CheckAccess(String, IntPtr, Byte[], ReportOperation)
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de rapport donnée.
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
Paramètres
- userName
- String
Nom de l'utilisateur qui demande l'accès au serveur de rapports.
- userToken
-
IntPtr
nativeint
Jeton d'un compte utilisateur. Ce jeton est principalement utilisé par le serveur de rapports en tant que handle d'un compte Microsoft Windows afin de prendre en charge la gestion des informations d'identification pour l'authentification Windows.
- secDesc
- Byte[]
Descripteur de sécurité de l'élément.
- requiredOperation
- ReportOperation
Opération demandée par le serveur de rapports pour un utilisateur donné.
Retours
Retourne la valeur true
si l'utilisateur actuellement authentifié est autorisé à accéder à l'élément en fonction de l'opération et du descripteur de sécurité fournis.
Exemples
L’exemple de code suivant utilise la méthode [CheckAccess, String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> pour évaluer les informations d’identification d’autorisation d’un utilisateur par rapport à un descripteur de sécurité pour un élément dans la base de données du serveur de rapports.
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;
}
S’applique à
CheckAccess(String, IntPtr, Byte[], ResourceOperation)
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour une opération de ressource donnée.
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
Paramètres
- userName
- String
Nom de l'utilisateur qui demande l'accès au serveur de rapports.
- userToken
-
IntPtr
nativeint
Jeton d'un compte utilisateur. Ce jeton est principalement utilisé par le serveur de rapports en tant que handle d'un compte Microsoft Windows afin de prendre en charge la gestion des informations d'identification pour l'authentification Windows.
- secDesc
- Byte[]
Descripteur de sécurité de l'élément.
- requiredOperation
- ResourceOperation
Opération demandée par le serveur de rapports pour un utilisateur donné.
Retours
Retourne la valeur true
si l'utilisateur actuellement authentifié est autorisé à accéder à l'élément en fonction de l'opération et du descripteur de sécurité fournis.
Exemples
L’exemple de code suivant utilise la méthode [CheckAccess, String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> pour évaluer les informations d’identification d’autorisation d’un utilisateur par rapport à un descripteur de sécurité pour un élément dans la base de données du serveur de rapports.
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;
}
S’applique à
CheckAccess(String, IntPtr, Byte[], ResourceOperation[])
Indique si un utilisateur est autorisé à accéder à un élément dans la base de données du serveur de rapports pour un tableau d'opérations de ressource donné.
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
Paramètres
- userName
- String
Nom de l'utilisateur qui demande l'accès au serveur de rapports.
- userToken
-
IntPtr
nativeint
Jeton d'un compte utilisateur. Ce jeton est principalement utilisé par le serveur de rapports en tant que handle d'un compte Microsoft Windows afin de prendre en charge la gestion des informations d'identification pour l'authentification Windows.
- secDesc
- Byte[]
Descripteur de sécurité de l'élément.
- requiredOperations
- ResourceOperation[]
Opérations demandées par le serveur de rapports pour un utilisateur donné.
Retours
Retourne la valeur true
si l'utilisateur actuellement authentifié est autorisé à accéder à l'élément en fonction de l'opération et du descripteur de sécurité fournis.
Exemples
L’exemple de code suivant utilise la méthode [CheckAccess, String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> pour évaluer les informations d’identification d’autorisation d’un utilisateur par rapport à un descripteur de sécurité pour un élément dans la base de données du serveur de rapports. L’exemple utilise la méthode CheckAccess surchargée (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> qui prend une seule opération comme argument.
' 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;
}