次の方法で共有


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

ユーザー アカウント トークンです。 このトークンは、Windows 認証の資格情報管理をサポートする Microsoft 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

ユーザー アカウント トークンです。 このトークンは、Windows 認証の資格情報管理をサポートする Microsoft 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> メソッド) を使用し、1 つの操作を引数として受け取ります。

' 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

ユーザー アカウント トークンです。 このトークンは、Windows 認証の資格情報管理をサポートする Microsoft 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

ユーザー アカウント トークンです。 このトークンは、Windows 認証の資格情報管理をサポートする Microsoft 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

ユーザー アカウント トークンです。 このトークンは、Windows 認証の資格情報管理をサポートする Microsoft 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> メソッド) を使用し、1 つの操作を引数として受け取ります。

' 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

ユーザー アカウント トークンです。 このトークンは、Windows 認証の資格情報管理をサポートする Microsoft 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

ユーザー アカウント トークンです。 このトークンは、Windows 認証の資格情報管理をサポートする Microsoft 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

ユーザー アカウント トークンです。 このトークンは、Windows 認証の資格情報管理をサポートする Microsoft 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

ユーザー アカウント トークンです。 このトークンは、Windows 認証の資格情報管理をサポートする Microsoft 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

ユーザー アカウント トークンです。 このトークンは、Windows 認証の資格情報管理をサポートする Microsoft 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> メソッド) を使用し、1 つの操作を引数として受け取ります。

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

適用対象