CreateSecurityDescriptor メソッド

レポート サーバー データベースに個々のアイテムと共に格納されたセキュリティ記述子を返します。

名前空間:  Microsoft.ReportingServices.Interfaces
アセンブリ:   Microsoft.ReportingServices.Interfaces (Microsoft.ReportingServices.Interfaces.dll)
  Microsoft.ReportingServices.SharePoint.UI.WebParts (Microsoft.ReportingServices.SharePoint.UI.WebParts.dll)

構文

'宣言
<StrongNameIdentityPermissionAttribute(SecurityAction.LinkDemand, PublicKey := "0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8")> _
Function CreateSecurityDescriptor ( _
    acl As AceCollection, _
    itemType As SecurityItemType, _
    <OutAttribute> ByRef stringSecDesc As String _
) As Byte()
'使用
Dim instance As IAuthorizationExtension
Dim acl As AceCollection
Dim itemType As SecurityItemType
Dim stringSecDesc As String
Dim returnValue As Byte()

returnValue = instance.CreateSecurityDescriptor(acl, _
    itemType, stringSecDesc)
[StrongNameIdentityPermissionAttribute(SecurityAction.LinkDemand, PublicKey = "0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8")]
byte[] CreateSecurityDescriptor(
    AceCollection acl,
    SecurityItemType itemType,
    out string stringSecDesc
)
[StrongNameIdentityPermissionAttribute(SecurityAction::LinkDemand, PublicKey = L"0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8")]
array<unsigned char>^ CreateSecurityDescriptor(
    AceCollection^ acl, 
    SecurityItemType itemType, 
    [OutAttribute] String^% stringSecDesc
)
[<StrongNameIdentityPermissionAttribute(SecurityAction.LinkDemand, PublicKey = "0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8")>]
abstract CreateSecurityDescriptor : 
        acl:AceCollection * 
        itemType:SecurityItemType * 
        stringSecDesc:string byref -> byte[] 
function CreateSecurityDescriptor(
    acl : AceCollection, 
    itemType : SecurityItemType, 
    stringSecDesc : String
) : byte[]

パラメーター

  • stringSecDesc
    型: System. . :: . .String%
    省略可能です。デバッグに使用可能なセキュリティ記述子の、わかりやすい説明です。これは、レポート サーバーで格納されません。

戻り値

型: array<System. . :: . .Byte> [] () [] []
シリアル化されたアクセス コードの一覧です。

説明

このメソッドを実装して、レポート サーバー データベースのアイテムに適用されるアクセス コードの一覧をシリアル化します。

セキュリティ記述子は次のものを説明します。

  • アイテムで操作を実行する権限を持っているグループまたはユーザー

  • アイテムの種類

  • アイテムへのアクセスを制御する任意のアクセス制御リスト

セキュリティ記述子を使用して、アイテムとそのプロパティへのアクセスを制御できます。SQL Server Reporting Services セキュリティ記述子を使用すると、次の操作を実行できます。

  • アイテムとそのプロパティへの、トラスティ アクセス権の付与

  • プリンシパル名またはプリンシパル ユーザー ID を使用した、トラスティの識別

  • プログラムによる、記述子の設定、取得、および変更

各アイテムのセキュリティ記述子を作成するには、CreateSecurityDescriptor メソッドを呼び出します。各アイテムのセキュリティ記述子にアクセスするには、レポート サーバーを介して CheckAccess を呼び出します。このプロパティは、シリアル化されたバイト配列におけるアイテムの記述子です。記述子は、レポート サーバー データベースに物理的に格納されます。このデータベースは、内部ではアクセス制御エントリのコレクションに基づいています。アイテムについてアクセス確認を要求すると、バイト配列がデータベースから取得され、引数として CheckAccess メソッドに渡されます。アイテムにこのプロパティを設定すると、AceCollection が渡され、アイテムのバイナリ記述子の作成を求められます。

使用例

次の例では、CreateSecurityDescriptor メソッドを使用して、レポート サーバー データベースのアイテムのアクセス コードの一覧をシリアル化します。このメソッドを使用して、追加のセキュリティ情報や認証情報をセキュリティ記述子の一部としてシリアル化できます。

Public Function CreateSecurityDescriptor(acl As AceCollection, itemType As SecurityItemType, ByRef stringSecDesc As String) As Byte()
   ' Creates a memory stream and serializes the ACL for storage.
   Dim bf As New BinaryFormatter()
   Dim result As New MemoryStream()
   bf.Serialize(result, acl)
   stringSecDesc = Nothing
   Return result.GetBuffer()
End Function 'CreateSecurityDescriptor
public byte[] CreateSecurityDescriptor(AceCollection acl, SecurityItemType itemType, out string stringSecDesc)
{
   // Creates a memory stream and serializes the ACL for storage.
   BinaryFormatter bf = new BinaryFormatter();
   MemoryStream result = new MemoryStream();
   bf.Serialize(result, acl);
   stringSecDesc = null;
   return result.GetBuffer();
}