方法: データ サービスへのアクセスを有効にする (WCF Data Services)

WCF Data Services では、データ サービスによって公開されているリソースに明示的にアクセス権を付与する必要があります。 つまり、新しいデータ サービスを作成した後も、個々のリソースに対し、エンティティ セットとして明示的にアクセスを許可する必要があります。 このトピックでは、クイック スタートを完了したときに作成される Northwind データ サービスの 5 つのエンティティ セットへの読み込みアクセスと書き込みアクセスを有効にする方法を示します。EntitySetRights の列挙は、FlagsAttribute を使用して定義するため、論理和演算子を使って 1 つのエンティティ セットに対して複数のアクセス許可を指定することができます。

注意

ASP.NET アプリケーションにアクセスできるクライアントは、データ サービスによって公開されるリソースにもアクセスできます。運用データ サービスで、リソースへの承認されていないアクセスを防止するために、アプリケーション自身もセキュリティで保護する必要があります。詳細については、「Securing ASP.NET Web Sites」を参照してください。

データ サービスへのアクセスを有効にするには

  • データ サービスのコードで、InitializeService 関数のプレースホルダーのコードを次の内容で置き換えます。

    ' Grant only the rights needed to support the client application.
    config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead _
         Or EntitySetRights.WriteMerge _
         Or EntitySetRights.WriteReplace)
    config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead _
        Or EntitySetRights.AllWrite)
    config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead)
    
    // Grant only the rights needed to support the client application.
    config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead
         | EntitySetRights.WriteMerge
         | EntitySetRights.WriteReplace);
    config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead
        | EntitySetRights.AllWrite);
    config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead);
    

    これにより、クライアントから Orders および Order_Details エンティティ セットへの読み取りおよび書き込みアクセスと、Customers エンティティ セットへの読み取り専用アクセスが有効になります。

関連項目

タスク

方法: IIS 上で実行する WCF Data Service を開発する

概念

データ サービスの構成 (WCF Data Services)