練習 1:應用程式安全性
在現有應用程式中新增驗證與角色授權。
開啟 BugSmak.sln,預設路徑 C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Security\exercises\ex01\begin,編譯。
Security\SecurityHelper.cs,加入命名空間:using System.Web.Security;Authenticate 方法加入代碼:public static bool Authenticate(string username, string password)
{
bool authenticated = false;
authenticated = Membership.ValidateUser(username, password);
return authenticated;
}
Membership.ValidateUser 實作使用者驗證。Membership 採 Provider 模型,ASP.NET 內建 SQL Server 與 Active Directory 兩種 Provider,也可自訂。練習中已實作從 XML 讀取成員的 ReadOnlyXmlMembershipProvider。
Security\Providers\ReadOnlyXmlMembershipProvider.cs,繼承 MembershipProvider,從未加密 XML 讀取(僅供練習參考)App.config 檢視 membership provider 設定,驗證資料儲存於 Users.xml:<membership defaultProvider="ReadOnlyXmlMembershipProvider">
<providers>
<add name="ReadOnlyXmlMembershipProvider"
type="BugSmak.Security.Providers.ReadOnlyXmlMembershipProvider, BugSmak"
description="Read-only XML membership provider"
xmlFileName="Users.xml" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="ReadOnlyXmlRoleProvider">
<providers>
<add name="ReadOnlyXmlRoleProvider"
type="BugSmak.Security.Providers.ReadOnlyXmlRoleProvider, BugSmak"
description="Read-only XML role provider"
xmlFileName="Users.xml" />
</providers>
</roleManager>
自訂 Provider 需在應用程式配置中註冊。