SqlRoleProvider 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
在 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 物件和 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 類別,您必須先建立 所使用的 SqlRoleProviderSQL 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) |