作法:使用 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。
設定角色提供者
在 Web.config 檔案的
<system.web>
元素底下,新增<roleManager>
元素,並將其enabled
屬性設定true
。將
defaultProvider
屬性設定為SqlRoleProvider
。新增
<providers>
元素當做<roleManager>
元素的子系。新增
<add>
元素 (其中並將name
、type
、connectionStringName
和applicationName
的屬性設為適當值,如下列範例所示),做為<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>
使用角色提供者設定服務
在 Web.config 檔案中,新增 <system.serviceModel> 元素。
將 <行為> 元素新增至
<system.ServiceModel>
元素。將 <serviceBehaviors> 新增至
<behaviors>
元素。新增 <行為> 元素,並將
name
屬性設定為適當值。將 <serviceAuthorization> 新增至
<behavior>
元素。將
principalPermissionMode
屬性設定為UseAspNetRoles
。將
roleProviderName
屬性設定為SqlRoleProvider
。 下列範例將說明組態片段。<behaviors> <serviceBehaviors> <behavior name="CalculatorServiceBehavior"> <serviceAuthorization principalPermissionMode ="UseAspNetRoles" roleProviderName ="SqlRoleProvider" /> </behavior> </serviceBehaviors> </behaviors>