IAuthorizationExtension.CheckAccess Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения данной операции.
Перегрузки
CheckAccess(String, IntPtr, Byte[], CatalogOperation) |
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения данной операции с каталогом. |
CheckAccess(String, IntPtr, Byte[], CatalogOperation[]) |
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения операций с каталогом, содержащихся в данном массиве. |
CheckAccess(String, IntPtr, Byte[], DatasourceOperation) |
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения данной операции источника данных. |
CheckAccess(String, IntPtr, Byte[], FolderOperation) |
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения данной операции с папкой. |
CheckAccess(String, IntPtr, Byte[], FolderOperation[]) |
Проверяет учетные данные авторизации пользователя по дескриптору защиты для выполнения операций по отношению к элементу в базе данных сервера отчетов |
CheckAccess(String, IntPtr, Byte[], ModelItemOperation) |
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения данной операции элемента модели. |
CheckAccess(String, IntPtr, Byte[], ModelOperation) |
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для данной операции модели. |
CheckAccess(String, IntPtr, Byte[], ReportOperation) |
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения данной операции с отчетом. |
CheckAccess(String, IntPtr, Byte[], ResourceOperation) |
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения данной операции с ресурсом. |
CheckAccess(String, IntPtr, Byte[], ResourceOperation[]) |
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения операций с ресурсом, указанных в данном массиве. |
CheckAccess(String, IntPtr, Byte[], CatalogOperation)
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения данной операции с каталогом.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::CatalogOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.CatalogOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.CatalogOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As CatalogOperation) As Boolean
Параметры
- userName
- String
Имя пользователя, запросившего доступ к серверу отчетов.
- userToken
-
IntPtr
nativeint
Токен учетной записи пользователя. Этот токен используется сервером отчетов в основном в качестве дескриптора учетной записи Microsoft Windows при поддержке управления учетными данными при проверке подлинности Windows.
- secDesc
- Byte[]
Дескриптор безопасности элемента.
- requiredOperation
- CatalogOperation
Операция, запрашиваемая сервером отчетов для данного пользователя.
Возвращаемое значение
Возвращает значение true
, если пользователю, для которого в настоящий момент выполняется проверка подлинности, предоставляется доступ к элементу на основе предоставленного дескриптора операции и безопасности.
Примеры
В следующем примере кода метод [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> используется для оценки учетных данных авторизации пользователя в дескрипторе безопасности для элемента в базе данных сервера отчетов.
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperation As CatalogOperation) As Boolean
Dim acl As AceCollection = DeserializeAcl(secDesc)
Dim ace As AceStruct
For Each ace In acl
' First check to see if the user or group has an access control entry for the item
If userName = ace.PrincipalName Then
' If an entry is found, return true if the given required operation
' is contained in the ACE structure.
Dim aclOperation As CatalogOperation
For Each aclOperation In ace.CatalogOperations
If aclOperation = requiredOperation Then
Return True
End If
Next aclOperation
End If
Next ace
Return False
End Function 'CheckAccess
Private Function DeserializeAcl(secDesc() As Byte) As AceCollection
Dim bf As New BinaryFormatter()
Dim sdStream As New MemoryStream(secDesc)
Dim acl As AceCollection = CType(bf.Deserialize(sdStream), AceCollection)
Return acl
End Function 'DeserializeAcl
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, CatalogOperation requiredOperation)
{
AceCollection acl = DeserializeAcl(secDesc);
foreach(AceStruct ace in acl)
{
// First check to see if the user or group has an access control entry for the item
if (userName == ace.PrincipalName)
{
// If an entry is found, return true if the given required operation
// is contained in the ACE structure.
foreach(CatalogOperation aclOperation in ace.CatalogOperations)
{
if (aclOperation == requiredOperation)
return true;
}
}
}
return false;
}
private AceCollection DeserializeAcl(byte[] secDesc)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream sdStream = new MemoryStream(secDesc);
AceCollection acl = (AceCollection)bf.Deserialize(sdStream);
return acl;
}
Применяется к
CheckAccess(String, IntPtr, Byte[], CatalogOperation[])
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения операций с каталогом, содержащихся в данном массиве.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, cli::array <Microsoft::ReportingServices::Interfaces::CatalogOperation> ^ requiredOperations);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.CatalogOperation[] requiredOperations);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.CatalogOperation[] -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperations As CatalogOperation()) As Boolean
Параметры
- userName
- String
Имя пользователя, запросившего доступ к серверу отчетов.
- userToken
-
IntPtr
nativeint
Токен учетной записи пользователя. Этот токен используется сервером отчетов в основном в качестве дескриптора учетной записи Microsoft Windows при поддержке управления учетными данными при проверке подлинности Windows.
- secDesc
- Byte[]
Дескриптор безопасности элемента.
- requiredOperations
- CatalogOperation[]
Операции, запрашиваемые сервером отчетов для данного пользователя.
Возвращаемое значение
Возвращает значение true
, если пользователю, для которого в настоящий момент выполняется проверка подлинности, предоставляется доступ к элементу на основе предоставленного дескриптора операции и безопасности.
Примеры
В следующем примере кода метод [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> используется для оценки учетных данных авторизации пользователя в дескрипторе безопасности для элемента в базе данных сервера отчетов. В этом примере используется перегруженный метод [CheckAccess Method (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> , который принимает одну операцию в качестве аргумента.
' Overload for array of catalog operations
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperations() As CatalogOperation) As Boolean
Dim operation As CatalogOperation
For Each operation In requiredOperations
If Not CheckAccess(userName, userToken, secDesc, operation) Then
Return False
End If
Next operation
Return True
End Function 'CheckAccess
// Overload for array of catalog operations
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, CatalogOperation[] requiredOperations)
{
foreach(CatalogOperation operation in requiredOperations)
{
if (!CheckAccess(userName, userToken, secDesc, operation))
return false;
}
return true;
}
Применяется к
CheckAccess(String, IntPtr, Byte[], DatasourceOperation)
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения данной операции источника данных.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::DatasourceOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.DatasourceOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.DatasourceOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As DatasourceOperation) As Boolean
Параметры
- userName
- String
Имя пользователя, запросившего доступ к серверу отчетов.
- userToken
-
IntPtr
nativeint
Токен учетной записи пользователя. Этот токен используется сервером отчетов в основном в качестве дескриптора учетной записи Microsoft Windows при поддержке управления учетными данными при проверке подлинности Windows.
- secDesc
- Byte[]
Дескриптор безопасности элемента.
- requiredOperation
- DatasourceOperation
Операция, запрашиваемая сервером отчетов для данного пользователя.
Возвращаемое значение
Возвращает значение true
, если пользователю, для которого в настоящий момент выполняется проверка подлинности, предоставляется доступ к элементу на основе предоставленного дескриптора операции и безопасности.
Примеры
В следующем примере кода метод [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> используется для оценки учетных данных авторизации пользователя в дескрипторе безопасности для элемента в базе данных сервера отчетов.
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperation As DatasourceOperation) As Boolean
Dim acl As AceCollection = DeserializeAcl(secDesc)
Dim ace As AceStruct
For Each ace In acl
' First check to see if the user or group has an access control entry for the item
If userName = ace.PrincipalName Then
' If an entry is found, return true if the given required operation
' is contained in the ACE structure.
Dim aclOperation As DatasourceOperation
For Each aclOperation In ace.DatasourceOperations
If aclOperation = requiredOperation Then
Return True
End If
Next aclOperation
End If
Next ace
Return False
End Function 'CheckAccess
Private Function DeserializeAcl(secDesc() As Byte) As AceCollection
Dim bf As New BinaryFormatter()
Dim sdStream As New MemoryStream(secDesc)
Dim acl As AceCollection = CType(bf.Deserialize(sdStream), AceCollection)
Return acl
End Function 'DeserializeAcl
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, DatasourceOperation requiredOperation)
{
AceCollection acl = DeserializeAcl(secDesc);
foreach(AceStruct ace in acl)
{
// First check to see if the user or group has an access control entry for the item
if (userName == ace.PrincipalName)
{
// If an entry is found, return true if the given required operation
// is contained in the ACE structure.
foreach(DatasourceOperation aclOperation in ace.DatasourceOperations)
{
if (aclOperation == requiredOperation)
return true;
}
}
}
return false;
}
private AceCollection DeserializeAcl(byte[] secDesc)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream sdStream = new MemoryStream(secDesc);
AceCollection acl = (AceCollection)bf.Deserialize(sdStream);
return acl;
}
Применяется к
CheckAccess(String, IntPtr, Byte[], FolderOperation)
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения данной операции с папкой.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::FolderOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.FolderOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.FolderOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As FolderOperation) As Boolean
Параметры
- userName
- String
Имя пользователя, запросившего доступ к серверу отчетов.
- userToken
-
IntPtr
nativeint
Токен учетной записи пользователя. Этот токен используется сервером отчетов в основном в качестве дескриптора учетной записи Microsoft Windows при поддержке управления учетными данными при проверке подлинности Windows.
- secDesc
- Byte[]
Дескриптор безопасности элемента.
- requiredOperation
- FolderOperation
Операция, запрашиваемая сервером отчетов для данного пользователя.
Возвращаемое значение
Возвращает значение true
, если пользователю, для которого в настоящий момент выполняется проверка подлинности, предоставляется доступ к элементу на основе предоставленного дескриптора операции и безопасности.
Примеры
В следующем примере кода метод [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> используется для оценки учетных данных авторизации пользователя в дескрипторе безопасности для элемента в базе данных сервера отчетов.
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperation As FolderOperation) As Boolean
Dim acl As AceCollection = DeserializeAcl(secDesc)
Dim ace As AceStruct
For Each ace In acl
' First check to see if the user or group has an access control entry for the item
If userName = ace.PrincipalName Then
' If an entry is found, return true if the given required operation
' is contained in the ACE structure.
Dim aclOperation As FolderOperation
For Each aclOperation In ace.FolderOperations
If aclOperation = requiredOperation Then
Return True
End If
Next aclOperation
End If
Next ace
Return False
End Function 'CheckAccess
Private Function DeserializeAcl(secDesc() As Byte) As AceCollection
Dim bf As New BinaryFormatter()
Dim sdStream As New MemoryStream(secDesc)
Dim acl As AceCollection = CType(bf.Deserialize(sdStream), AceCollection)
Return acl
End Function 'DeserializeAcl
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, FolderOperation requiredOperation)
{
AceCollection acl = DeserializeAcl(secDesc);
foreach(AceStruct ace in acl)
{
// First check to see if the user or group has an access control entry for the item
if (userName == ace.PrincipalName)
{
// If an entry is found, return true if the given required operation
// is contained in the ACE structure.
foreach(FolderOperation aclOperation in ace.FolderOperations)
{
if (aclOperation == requiredOperation)
return true;
}
}
}
return false;
}
private AceCollection DeserializeAcl(byte[] secDesc)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream sdStream = new MemoryStream(secDesc);
AceCollection acl = (AceCollection)bf.Deserialize(sdStream);
return acl;
}
Применяется к
CheckAccess(String, IntPtr, Byte[], FolderOperation[])
Проверяет учетные данные авторизации пользователя по дескриптору защиты для выполнения операций по отношению к элементу в базе данных сервера отчетов
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, cli::array <Microsoft::ReportingServices::Interfaces::FolderOperation> ^ requiredOperations);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.FolderOperation[] requiredOperations);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.FolderOperation[] -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperations As FolderOperation()) As Boolean
Параметры
- userName
- String
Имя пользователя, запросившего доступ к серверу отчетов.
- userToken
-
IntPtr
nativeint
Токен учетной записи пользователя. Этот токен используется сервером отчетов в основном в качестве дескриптора учетной записи Microsoft Windows при поддержке управления учетными данными при проверке подлинности Windows.
- secDesc
- Byte[]
Дескриптор безопасности элемента.
- requiredOperations
- FolderOperation[]
Операции, запрашиваемые сервером отчетов для данного пользователя.
Возвращаемое значение
Возвращает значение true
, если пользователю, для которого в настоящий момент выполняется проверка подлинности, предоставляется доступ к элементу на основе предоставленного дескриптора операции и безопасности.
Примеры
В следующем примере кода метод [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> используется для оценки учетных данных авторизации пользователя в дескрипторе безопасности для элемента в базе данных сервера отчетов. В этом примере используется перегруженный метод [CheckAccess Method (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> , который принимает одну операцию в качестве аргумента.
' Overload for array of folder operations
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperations() As FolderOperation) As Boolean
Dim operation As FolderOperation
For Each operation In requiredOperations
If Not CheckAccess(userName, userToken, secDesc, operation) Then
Return False
End If
Next operation
Return True
End Function 'CheckAccess
// Overload for array of folder operations
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, FolderOperation[] requiredOperations)
{
foreach(FolderOperation operation in requiredOperations)
{
if (!CheckAccess(userName, userToken, secDesc, operation))
return false;
}
return true;
}
Применяется к
CheckAccess(String, IntPtr, Byte[], ModelItemOperation)
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения данной операции элемента модели.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::ModelItemOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.ModelItemOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.ModelItemOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As ModelItemOperation) As Boolean
Параметры
- userName
- String
Имя пользователя, запросившего доступ к серверу отчетов.
- userToken
-
IntPtr
nativeint
Токен учетной записи пользователя. Этот токен используется сервером отчетов в основном в качестве дескриптора учетной записи Microsoft Windows при поддержке управления учетными данными при проверке подлинности Windows.
- secDesc
- Byte[]
Дескриптор безопасности элемента.
- requiredOperation
- ModelItemOperation
Операции, запрашиваемые сервером отчетов для данного пользователя.
Возвращаемое значение
Возвращает значение true
, если пользователю, для которого в настоящий момент выполняется проверка подлинности, предоставляется доступ к элементу на основе предоставленного дескриптора операции и безопасности.
Применяется к
CheckAccess(String, IntPtr, Byte[], ModelOperation)
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для данной операции модели.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::ModelOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.ModelOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.ModelOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As ModelOperation) As Boolean
Параметры
- userName
- String
Имя пользователя, запросившего доступ к серверу отчетов.
- userToken
-
IntPtr
nativeint
Токен учетной записи пользователя. Этот токен используется сервером отчетов в основном в качестве дескриптора учетной записи Microsoft Windows при поддержке управления учетными данными при проверке подлинности Windows.
- secDesc
- Byte[]
Дескриптор безопасности элемента.
- requiredOperation
- ModelOperation
Операции, запрашиваемые сервером отчетов для данного пользователя.
Возвращаемое значение
true
Значение , если пользователю, прошедшему проверку подлинности, предоставляется доступ к элементу на основе предоставленной операции и дескриптора безопасности; false
в противном случае .
Применяется к
CheckAccess(String, IntPtr, Byte[], ReportOperation)
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения данной операции с отчетом.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::ReportOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.ReportOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.ReportOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As ReportOperation) As Boolean
Параметры
- userName
- String
Имя пользователя, запросившего доступ к серверу отчетов.
- userToken
-
IntPtr
nativeint
Токен учетной записи пользователя. Этот токен используется сервером отчетов в основном в качестве дескриптора учетной записи Microsoft Windows при поддержке управления учетными данными при проверке подлинности Windows.
- secDesc
- Byte[]
Дескриптор безопасности элемента.
- requiredOperation
- ReportOperation
Операция, запрашиваемая сервером отчетов для данного пользователя.
Возвращаемое значение
Возвращает значение true
, если пользователю, для которого в настоящий момент выполняется проверка подлинности, предоставляется доступ к элементу на основе предоставленного дескриптора операции и безопасности.
Примеры
В следующем примере кода метод [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> используется для оценки учетных данных авторизации пользователя в дескрипторе безопасности для элемента в базе данных сервера отчетов.
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperation As ReportOperation) As Boolean
Dim acl As AceCollection = DeserializeAcl(secDesc)
Dim ace As AceStruct
For Each ace In acl
' First check to see if the user or group has an access control entry for the item
If userName = ace.PrincipalName Then
' If an entry is found, return true if the given required operation
' is contained in the ACE structure.
Dim aclOperation As ReportOperation
For Each aclOperation In ace.ReportOperations
If aclOperation = requiredOperation Then
Return True
End If
Next aclOperation
End If
Next ace
Return False
End Function 'CheckAccess
Private Function DeserializeAcl(secDesc() As Byte) As AceCollection
Dim bf As New BinaryFormatter()
Dim sdStream As New MemoryStream(secDesc)
Dim acl As AceCollection = CType(bf.Deserialize(sdStream), AceCollection)
Return acl
End Function 'DeserializeAcl
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, ReportOperation requiredOperation)
{
AceCollection acl = DeserializeAcl(secDesc);
foreach(AceStruct ace in acl)
{
// First check to see if the user or group has an access control entry for the item
if (userName == ace.PrincipalName)
{
// If an entry is found, return true if the given required operation
// is contained in the ACE structure.
foreach(ReportOperation aclOperation in ace.ReportOperations)
{
if (aclOperation == requiredOperation)
return true;
}
}
}
return false;
}
private AceCollection DeserializeAcl(byte[] secDesc)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream sdStream = new MemoryStream(secDesc);
AceCollection acl = (AceCollection)bf.Deserialize(sdStream);
return acl;
}
Применяется к
CheckAccess(String, IntPtr, Byte[], ResourceOperation)
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения данной операции с ресурсом.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::ResourceOperation requiredOperation);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.ResourceOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.ResourceOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As ResourceOperation) As Boolean
Параметры
- userName
- String
Имя пользователя, запросившего доступ к серверу отчетов.
- userToken
-
IntPtr
nativeint
Токен учетной записи пользователя. Этот токен используется сервером отчетов в основном в качестве дескриптора учетной записи Microsoft Windows при поддержке управления учетными данными при проверке подлинности Windows.
- secDesc
- Byte[]
Дескриптор безопасности элемента.
- requiredOperation
- ResourceOperation
Операция, запрашиваемая сервером отчетов для данного пользователя.
Возвращаемое значение
Возвращает значение true
, если пользователю, для которого в настоящий момент выполняется проверка подлинности, предоставляется доступ к элементу на основе предоставленного дескриптора операции и безопасности.
Примеры
В следующем примере кода метод [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> используется для оценки учетных данных авторизации пользователя в дескрипторе безопасности для элемента в базе данных сервера отчетов.
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperation As ResourceOperation) As Boolean
Dim acl As AceCollection = DeserializeAcl(secDesc)
Dim ace As AceStruct
For Each ace In acl
' First check to see if the user or group has an access control entry for the item
If userName = ace.PrincipalName Then
' If an entry is found, return true if the given required operation
' is contained in the ACE structure.
Dim aclOperation As ResourceOperation
For Each aclOperation In ace.ResourceOperations
If aclOperation = requiredOperation Then
Return True
End If
Next aclOperation
End If
Next ace
Return False
End Function 'CheckAccess
Private Function DeserializeAcl(secDesc() As Byte) As AceCollection
Dim bf As New BinaryFormatter()
Dim sdStream As New MemoryStream(secDesc)
Dim acl As AceCollection = CType(bf.Deserialize(sdStream), AceCollection)
Return acl
End Function 'DeserializeAcl
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, ResourceOperation requiredOperation)
{
AceCollection acl = DeserializeAcl(secDesc);
foreach(AceStruct ace in acl)
{
// First check to see if the user or group has an access control entry for the item
if (userName == ace.PrincipalName)
{
// If an entry is found, return true if the given required operation
// is contained in the ACE structure.
foreach(ResourceOperation aclOperation in ace.ResourceOperations)
{
if (aclOperation == requiredOperation)
return true;
}
}
}
return false;
}
private AceCollection DeserializeAcl(byte[] secDesc)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream sdStream = new MemoryStream(secDesc);
AceCollection acl = (AceCollection)bf.Deserialize(sdStream);
return acl;
}
Применяется к
CheckAccess(String, IntPtr, Byte[], ResourceOperation[])
Указывает, имеет ли пользователь разрешение на доступ к элементу в базе данных сервера отчетов для выполнения операций с ресурсом, указанных в данном массиве.
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, cli::array <Microsoft::ReportingServices::Interfaces::ResourceOperation> ^ requiredOperations);
public bool CheckAccess (string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.ResourceOperation[] requiredOperations);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.ResourceOperation[] -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperations As ResourceOperation()) As Boolean
Параметры
- userName
- String
Имя пользователя, запросившего доступ к серверу отчетов.
- userToken
-
IntPtr
nativeint
Токен учетной записи пользователя. Этот токен используется сервером отчетов в основном в качестве дескриптора учетной записи Microsoft Windows при поддержке управления учетными данными при проверке подлинности Windows.
- secDesc
- Byte[]
Дескриптор безопасности элемента.
- requiredOperations
- ResourceOperation[]
Операции, запрашиваемые сервером отчетов для данного пользователя.
Возвращаемое значение
Возвращает значение true
, если пользователю, для которого в настоящий момент выполняется проверка подлинности, предоставляется доступ к элементу на основе предоставленного дескриптора операции и безопасности.
Примеры
В следующем примере кода метод [CheckAccess (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> используется для оценки учетных данных авторизации пользователя в дескрипторе безопасности для элемента в базе данных сервера отчетов. В этом примере используется перегруженный метод [CheckAccess Method (String, IntPtr, Byte<xref:Microsoft.ReportingServices.Interfaces.IAuthorizationExtension.CheckAccess%2A> , который принимает одну операцию в качестве аргумента.
' Overload for array of resource operations
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperations() As ResourceOperation) As Boolean
Dim operation As ResourceOperation
For Each operation In requiredOperations
If Not CheckAccess(userName, userToken, secDesc, operation) Then
Return False
End If
Next operation
Return True
End Function 'CheckAccess
// Overload for array of resource operations
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, ResourceOperation[] requiredOperations)
{
foreach(ResourceOperation operation in requiredOperations)
{
if (!CheckAccess(userName, userToken, secDesc, operation))
return false;
}
return true;
}