程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> Enterprise Library 2.0 Hands On Lab 翻譯(12):安全應用程序塊(一)

Enterprise Library 2.0 Hands On Lab 翻譯(12):安全應用程序塊(一)

編輯:關於ASP.NET

練習1:應用程序安全性

通過該練習將在一個已經存在的應用程序中添加認證和基於角色的授權。

第一步

打BugSmak.sln項目,默認的安裝路徑應該為C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Security\exercises\ex01\begin,並編譯。

第二步 在應用程序中添加認證

1.選擇Debug | Start Without Debugging菜單命令運行應用程序。應用程序當前沒有可以使用的認證用戶。

2.關閉應用程序。

3.在解決方案管理器中選擇Security \ SecurityHelper.cs文件,選擇View | Code菜單命令,添加如下的命名空間。

using System.Web.Security;

4.在方法Authenticate中添加如下代碼。

public static bool Authenticate(string username, string password)
{
  bool authenticated = false;
  // TODO: Authenticate Credentials
  authenticated = Membership.ValidateUser(username, password);
  // TODO: Get Roles
  return authenticated;
}

方法Authenticate將會被窗體LoginForm調用來驗證用戶身份,Membership.ValidateUser方法實現了用戶的驗證。Membership系統使用了provider模型,所以應用程序不用去實現數據的存儲,ASP.NET ships提供了兩種Membership Provider,一是使用Microsoft SQL Server作為數據源,另一個是使用Windows Active Directory。也可以創建自己的Membership Provider,我們已經實現了讀取從XML文件中讀取application members。

5.在解決方案管理器中選擇Security | Providers | ReadOnlyXmlMembershipProvider.cs,並選擇View | Code菜單命令回顧一下代碼。

ReadOnlyXmlMembershipProvider(繼承於MembershipProvider)是一個自定義Provider的示例,它實現從一個未加密的XML文件中讀取,這並不是一個好的實踐,但是在該練習中卻非常的有用。

6.打開App.config文件,查看membership provider的配置,認證數據的存儲定義在一個Users.xml的文件中。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.web>
  <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>
 </system.web>
</configuration>

如果有一個自定義的Provider,必須對應用程序進行配置。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved