作法:使用 ASP.NET 角色提供者搭配服務

ASP.NET 角色提供者 (以及 ASP.NET 成員資格提供者) 這項功能可讓 ASP.NET 開發人員建立網站,以允許使用者在網站中建立帳戶,並允許對使用者指派角色做為授權用途。 任何使用者都可以使用這個功能在網站上建立帳戶,並登入以擁有網站與其服務的獨佔存取權。 這與 Windows 安全性形成對比,因為 Windows 安全性需要使用者有 Windows 網域的帳戶。 相反的,任何使用者只要提供認證 (使用者名稱/密碼組合) 就可以使用該網站與其服務。

如需範例應用程式,請參閱成員資格和角色提供者。 如需 ASP.NET 成員資格提供者功能的詳細資訊,請參閱如何:使用 ASP.NET 成員資格提供者

角色提供者功能會使用 SQL Server 資料庫儲存使用者資訊。 Windows Communication Foundation (WCF) 程式開發人員可以針對安全性目的利用這些功能。 當整合至 WCF 應用程式時,使用者必須將使用者名稱/密碼組合提供給 WCF 用戶端應用程式。 若要啟用 WCF 來使用資料庫,您必須建立 ServiceAuthorizationBehavior 類別的執行個體,並將其 PrincipalPermissionMode 屬性設為 UseAspNetRoles,然後將行為集合的執行個體新增至裝載服務的 ServiceHost

設定角色提供者

  1. 在 Web.config 檔案的 <system.web> 元素底下,新增 <roleManager> 元素,並將其 enabled 屬性設定 true

  2. defaultProvider 屬性設定為 SqlRoleProvider

  3. 新增 <providers> 元素當做 <roleManager> 元素的子系。

  4. 新增 <add> 元素 (其中並將 nametypeconnectionStringNameapplicationName 的屬性設為適當值,如下列範例所示),做為 <providers> 元素的子系。

    <!-- Configure the Sql Role Provider. -->  
    <roleManager enabled ="true"
     defaultProvider ="SqlRoleProvider" >  
       <providers>  
         <add name ="SqlRoleProvider"
           type="System.Web.Security.SqlRoleProvider"
           connectionStringName="SqlConn"
           applicationName="MembershipAndRoleProviderSample"/>  
       </providers>  
    </roleManager>  
    

使用角色提供者設定服務

  1. 在 Web.config 檔案中,新增 <system.serviceModel> 元素。

  2. <行為> 元素新增至 <system.ServiceModel> 元素。

  3. <serviceBehaviors> 新增至 <behaviors> 元素。

  4. 新增 <行為> 元素,並將 name 屬性設定為適當值。

  5. <serviceAuthorization> 新增至 <behavior> 元素。

  6. principalPermissionMode 屬性設定為 UseAspNetRoles

  7. roleProviderName 屬性設定為 SqlRoleProvider。 下列範例將說明組態片段。

    <behaviors>  
     <serviceBehaviors>  
      <behavior name="CalculatorServiceBehavior">  
       <serviceAuthorization principalPermissionMode ="UseAspNetRoles"  
                             roleProviderName ="SqlRoleProvider" />  
      </behavior>  
     </serviceBehaviors>  
    </behaviors>  
    

另請參閱