程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET 2.0中保證應用程序的安全

ASP.NET 2.0中保證應用程序的安全

編輯:關於ASP.NET

成員和角色管理器提供程序--現在ASP.NET 2.0包含了內建的成員和角色管理服務。由於這些服務都是提供程序驅動的(provider-driven),你可以輕易地變更它,或者用自定義實現來代替它。

登錄控件--新的登錄控件為站點的基於認證和授權的UI(例如登錄窗體、創建用戶窗體、密碼取回、已登錄用戶或角色的定制UI)提供了基本模塊。這些控件利用ASP.NET 2.0中的內建的成員和角色服務與站點所定義的用戶和角色信息交互操作。

大多數Web應用程序的一個重要的部分是辨別用戶並控制資源的訪問權。檢測請求的實體(entity)身份的操作就是認證(authentication)。通常,為了進行認證,用戶必須提供憑證,例如帳號/密碼。一旦認證過的身份是有效的,就必須檢測該身份是否能夠訪問指定的資源,這個過程就是授權(authorization)。ASP.NET與IIS一起為應用程序提供認證和授權服務。

COM對象的一個重要特性就是,它能夠控制那些運行COM對象代碼的身份。當COM對象用請求的實體身份運行代碼的時候,就稱為模仿(impersonation)。ASP.NET框架組件應用程序可以選擇模仿請求。

有些應用程序還希望根據請求的身份或者根據請求的身份所屬的角色來動態地定制內容。ASP.NET框架組件應用程序可以動態地檢測當前請求的身份是否屬於某種角色。例如,應用程序可能希望檢測當前用戶是否屬於管理員角色,以便為管理員有條件地生成內容。

ASP.NET 2.0的成員特性使你創建和管理用戶更加容易了。成員特性一般與另外一個叫做角色管理器的新特性一起運作。角色管理器為創建角色和給角色指定用戶提供了下層結構。當成員、角色管理器特性和窗體認證一起工作的時候,ASP.NET 2.0就可以為創建、認證和授權用戶提供端對端的支持。

成員和角色管理器都是用基於提供程序的模型設計的。提供程序從特性所暴露的類和業務邏輯中提取特性的物理數據存儲。成員和角色管理器特性都帶有Microsoft SQL Server提供程序。成員特性還帶有一個用於處理活動目錄和活動目錄應用程序模式(ADAM)的提供程序。角色管理器特性帶有一個能利用Windows Server 2003授權管理特性的提供程序。你可以建立自定義的提供程序,並配置它與成員和角色管理器特性一起使用。使用自定義提供程序的時候,利用成員和角色管理器特性的頁面仍然會繼續工作,毫無改變。

登錄控件是一組自定義的服務器控件,它為認證和授權事務提供了公用的用戶界面。登錄控件利用了成員、角色管理器和窗體認證特性中的功能。

認證和授權

ASP.NET與IIS一起支持使用基本的、Digest和Windows認證。ASP.NET支持微軟Passport認證服務,它支持單點登錄服務和用戶配置服務。ASP.NET還支持一種使用基於窗體認證的強大的服務。基於窗體的認證使用Cookie來認證用戶,並允許應用程序執行自己的憑證驗證過程。

我們要認識到,ASP.NET認證服務是受到IIS提供的認證服務制約的。例如,為了在IIS應用程序中使用基本認證,你就必須使用Internet服務管理工具來配置應用程序以使用基本認證。

ASP.NET提供了兩種授權服務:

◆檢查ACL(訪問控制列表)或資源權限,看某個認證過的用戶是否能夠訪問該資源。

◆URL授權,它批准一個身份使用一定的Web空間。

為了演示它們的差別,我們來看一個例子,假設某個應用程序允許匿名用戶使用IUSR_MYMACHINE帳號訪問。當某個ASP.NET頁面(例如"/default.aspx")的請求通過認證之後,就會依據該文件(例如"c:\inetpub\wwwroot\default.aspx")的ACL進行檢查,看IUSR_MYMACHINE帳號是否有權限讀取這個文件。如果有權限,就對訪問進行授權。如果Web內容位於NTFS卷中,並且已經配置了虛擬目錄使用Windows認證,文件的授權就會自動地執行。

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