SqlRoleProvider 類別

定義

在 SQL Server 資料庫中,管理 ASP.NET 應用程式的角色成員資格資訊儲存區。

public ref class SqlRoleProvider : System::Web::Security::RoleProvider
public class SqlRoleProvider : System.Web.Security.RoleProvider
type SqlRoleProvider = class
    inherit RoleProvider
Public Class SqlRoleProvider
Inherits RoleProvider
繼承
SqlRoleProvider

範例

下列範例顯示設定為使用 SqlRoleProvider 物件和 SqlMembershipProvider 之 ASP.NET 應用程式的Web.config檔案。 元素 authorization 設定為只允許存取 Administrators 角色中已驗證的使用者。

<configuration>
  <connectionStrings>
    <add name="SqlServices" connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=aspnetdb;" />
  </connectionStrings>
  <system.web>
    <authentication mode="Forms" >
      <forms loginUrl="logincs.aspx"
      name=".ASPXFORMSAUTH" />
    </authentication>
    <authorization>
      <deny users="?" />
      <allow roles="Administrators" />
      <deny users="*" />
    </authorization>
    <membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
      <providers>
        <add
          name="SqlProvider"
          type="System.Web.Security.SqlMembershipProvider"
          connectionStringName="SqlServices"
          enablePasswordRetrieval="false"
          enablePasswordReset="false"
          requiresQuestionAndAnswer="false"
          passwordFormat="Hashed"
          applicationName="SampleApplication" />
      </providers>
    </membership>
    <roleManager defaultProvider="SqlProvider"
      enabled="true"
      cacheRolesInCookie="true"
      cookieName=".ASPROLES"
      cookieTimeout="30"
      cookiePath="/"
      cookieRequireSSL="true"
      cookieSlidingExpiration="true"
      cookieProtection="All" >
      <providers>
        <add
          name="SqlProvider"
          type="System.Web.Security.SqlRoleProvider"
          connectionStringName="SqlServices"
          applicationName="SampleApplication" />
      </providers>
    </roleManager>
  </system.web>
</configuration>

備註

RolePrincipal 類別會使用此 Roles 類別,以使用 SQL Server 資料庫,為 ASP.NET 應用程式提供角色管理服務。 您可以使用角色管理來指定應用程式的不同授權層級。

若要使用 SqlRoleProvider 類別,您必須先建立 所使用的 SqlRoleProvider SQL Server資料庫。 若要建立 類別所使用的 SqlRoleProvider 資料庫,請執行 aspnet_regsql.exe C:\WINDOWS\Microsoft.NET\Framework\ versionNumber 資料夾中找到的可執行檔, aspnet_regsql.exe -Ar 並指定 -Ar 選項 (例如,) 。 建立的資料庫稱為 Aspnetdb。 或者,執行 aspnet_regsql.exe 以提取 GUI 設定模式,然後選擇設定所有 ASP.NET 功能。

如果角色提供者設定為使用整合式安全性的連接字串,則 ASP.NET 應用程式的進程帳戶必須具有連線至SQL Server資料庫的許可權。

Machine.config檔案是使用 SqlRoleProvider 名為 AspNetSqlProvider 的實例來設定,該實例會連線到本機電腦上的SQL Server。 您可以使用這個提供者實例,或在 ASP.NET 應用程式的Web.config檔案中指定您自己的實例。 若要使用 AspNetSqlProvider 實例,請在設定中將 AspNetSqlProvider 指定為 defaultProvider

您可以將 設定 SqlRoleProvider 為使用與 相同的資料庫和使用者資訊 SqlMembershipProvider ,以便使用單一資料庫進行驗證和授權資訊。 若要針對成員資格和角色資訊使用相同的資料庫,請執行aspnet_regsql.exe可執行檔並安裝成員資格功能。 然後,在和 SqlMembershipProvider 實例的組態 SqlRoleProvider 中指定相同的連接字串。 也請確定兩個提供者實例都設定為相同的 ApplicationName

建構函式

SqlRoleProvider()

建立 SqlRoleProvider 類別的執行個體。

屬性

ApplicationName

取得或設定應用程式的名稱,以儲存及擷取角色資訊。

Description

取得簡短、易讀的描述,適合顯示在管理工具或其他使用者介面 (UI) 中。

(繼承來源 ProviderBase)
Name

取得用來在設定期間代表提供者的易記名稱。

(繼承來源 ProviderBase)

方法

AddUsersToRoles(String[], String[])

將指定使用者加入每個指定的角色。

CreateRole(String)

將新角色加入角色資料庫。

DeleteRole(String, Boolean)

從角色資料庫中移除角色。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
FindUsersInRole(String, String)

取得角色中的使用者名稱陣列,其中使用者名稱包含要符合的指定使用者名稱。

GetAllRoles()

取得應用程式所有角色的清單。

GetHashCode()

做為預設雜湊函式。

(繼承來源 Object)
GetRolesForUser(String)

取得使用者所屬角色的清單。

GetType()

取得目前執行個體的 Type

(繼承來源 Object)
GetUsersInRole(String)

取得指定角色的使用者清單。

Initialize(String, NameValueCollection)

使用 ASP.NET 應用程式組態檔中指定的屬性值,初始化 SQL Server 角色提供者。 這個方法不能從程式碼直接使用。

IsUserInRole(String, String)

取得值,指出指定使用者是否在指定的角色中。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
RemoveUsersFromRoles(String[], String[])

從指定的角色移除指定的使用者名稱。

RoleExists(String)

取得值,指出指定的角色名稱是否已存在於角色資料庫中。

ToString()

傳回代表目前物件的字串。

(繼承來源 Object)

適用於

另請參閱