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 類別,您必須先建立 所使用的 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) |
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應