IAuthorizationExtension.CheckAccess メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
特定の操作に対して、ユーザーがレポートサーバーデータベース内のアイテムにアクセスする権限があるかどうかを示します。
オーバーロード
| 名前 | 説明 |
|---|---|
| CheckAccess(String, IntPtr, Byte[], CatalogOperation) |
特定のカタログ操作に対して、ユーザーがレポートサーバーデータベース内のアイテムにアクセスする権限があるかどうかを示します。 |
| CheckAccess(String, IntPtr, Byte[], CatalogOperation[]) |
特定のカタログ配列操作に対して、ユーザーがレポートサーバーデータベース内のアイテムにアクセスする権限があるかどうかを示します。 |
| CheckAccess(String, IntPtr, Byte[], DatasourceOperation) |
特定のデータソース操作に対して、ユーザーがレポートサーバーデータベース内のアイテムにアクセスする権限があるかどうかを示します。 |
| CheckAccess(String, IntPtr, Byte[], FolderOperation) |
特定のフォルダ操作に対して、ユーザーがレポートサーバーデータベース内のアイテムにアクセスする権限があるかどうかを示します。 |
| CheckAccess(String, IntPtr, Byte[], FolderOperation[]) |
ユーザーの認証情報をセキュリティディスクリプタと照合し、レポートサーバーデータベース内のアイテムに対する操作を検証します |
| CheckAccess(String, IntPtr, Byte[], ModelItemOperation) |
特定のモデルアイテム操作に対して、ユーザーがレポートサーバーデータベース内のアイテムにアクセスする権限があるかどうかを示します。 |
| CheckAccess(String, IntPtr, Byte[], ModelOperation) |
特定のモデル操作に対して、ユーザーがレポートサーバーデータベース内のアイテムにアクセスする権限があるかどうかを示します。 |
| CheckAccess(String, IntPtr, Byte[], ReportOperation) |
特定のレポート操作に対して、ユーザーがレポートサーバーデータベース内のアイテムにアクセスする権限があるかどうかを示します。 |
| CheckAccess(String, IntPtr, Byte[], ResourceOperation) |
特定のリソース操作に対して、ユーザーがレポートサーバーデータベース内のアイテムにアクセスする権限があるかどうかを示します。 |
| CheckAccess(String, IntPtr, Byte[], ResourceOperation[]) |
特定のリソース配列操作に対して、ユーザーがレポートサーバーデータベース内のアイテムにアクセスする権限があるかどうかを示します。 |
CheckAccess(String, IntPtr, Byte[], CatalogOperation)
特定のカタログ操作に対して、ユーザーがレポートサーバーデータベース内のアイテムにアクセスする権限があるかどうかを示します。
public:
bool CheckAccess(System::String ^ userName, IntPtr userToken, cli::array <System::Byte> ^ secDesc, Microsoft::ReportingServices::Interfaces::CatalogOperation requiredOperation);
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, Microsoft.ReportingServices.Interfaces.CatalogOperation requiredOperation);
abstract member CheckAccess : string * nativeint * byte[] * Microsoft.ReportingServices.Interfaces.CatalogOperation -> bool
Public Function CheckAccess (userName As String, userToken As IntPtr, secDesc As Byte(), requiredOperation As CatalogOperation) As Boolean
パラメーター
- userName
- String
レポートサーバーへのアクセスを要求しているユーザーの名前。
- userToken
-
IntPtr
nativeint
ユーザーアカウントトークンです。 このトークンは主にレポートサーバーが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メソッド(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メソッド(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メソッド(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;
}