HOW TO:啟用資料服務的存取 (WCF 資料服務)

在 WCF Data Services 中,您必須明確授與資料服務所公開之資源的存取權。 這表示當您建立新的資料服務之後,您仍然必須明確提供個別資源的存取權當做實體集。 本主題會示範如何啟用 Northwind 資料服務中五個實體集的讀取和寫入存取權,這個資料服務是當您完成快速入門時所建立的。 因為 EntitySetRights 列舉的定義方式是透過使用 FlagsAttribute,所以您可以使用邏輯 OR 運算子為單一實體集指定多個權限。

Dd728277.note(zh-tw,VS.100).gif注意:
任何可以存取 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);
    

    如此可讓用戶端具有 OrdersOrder_Details 實體集的讀取和寫入存取權,並擁有 Customers 實體集的唯讀存取權。

另請參閱

工作

HOW TO:開發在 IIS 上執行的 WCF 資料服務

概念

設定資料服務 (WCF Data Services)