免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
使用 IIS 進行ASP.NET 成員/角色管理(1):安全和配置概述

  適用于:

  Microsoft ASP.NET 2.0
  Microsoft Visual Studio 2005
  Microsoft Internet 信息服務(wù)

  摘要:Peter Kellner 就創(chuàng)建應(yīng)用程序來管理 Microsoft ASP.NET 2.0 成員身份數(shù)據(jù)庫寫了兩篇文章,這是第一篇。本文主要論述如何保證解決方案的安全性以確保只有適合的管理員才能訪問這些數(shù)據(jù)。

  摘要

  本系列由兩篇文章組成,論述如何安全使用和設(shè)置用于管理 ASP.NET Membership 與 Roles 的三層解決方案,本文是第一篇。本文將主要論述如何配置、使用以及(最重要的是)保證此解決方案的安全性,并概述如何將其在典型的 Microsoft ASP.NET 2.0 Web 解決方案中實現(xiàn)。MembershipRoles 對象被視為可運作,而不用深究其內(nèi)部結(jié)構(gòu)。管理 Members 和 Roles 似乎與管理簡單數(shù)據(jù)源中的數(shù)據(jù)無異。在第二篇文章中,將詳細說明這些控件和對象的內(nèi)部結(jié)構(gòu),以便開發(fā)人員能夠使用類似的技術(shù)創(chuàng)建自己的控件和對象。

  簡介

  ASP.NET 2.0 將用戶身份驗證直接擴展到了應(yīng)用程序編程領(lǐng)域。使用標(biāo)準(zhǔn)的 .NET 庫引用 (system.web.security),開發(fā)人員只需另外進行非常少的工作就可以為其應(yīng)用程序創(chuàng)建完全身份驗證。請記住,必須執(zhí)行必要的操作以盡可能保證創(chuàng)建的應(yīng)用程序在使用期間的安全性。

  本文概述了安全機制并顯示了示例安全設(shè)置,這些設(shè)置是為 Web 應(yīng)用程序創(chuàng)建安全環(huán)境的基本要素。ASP.NET 2.0 提供了許多不同的配置選項,這些選項是否必要取決于安全要求。本文將介紹這些配置選項的優(yōu)缺點。

  安全性注意事項

  保證物理環(huán)境的安全性

  人們常說,計算機的安全性由計算機前端面板上的電源開關(guān)來決定。無論操作系統(tǒng)級別對系統(tǒng)的保護有多么嚴(yán)密,物理保護都是最基本的。所以必須假定任何有權(quán)以物理方式訪問計算機的用戶始終能夠以某種方式危害計算機的完整性。

  保證域環(huán)境的安全性

  必須遵循設(shè)置用戶帳戶、密碼和權(quán)限的最佳做法。例如,如果不具有相應(yīng)權(quán)限的用戶能夠直接訪問包含 Web 應(yīng)用程序所用的安全數(shù)據(jù)的數(shù)據(jù)庫,則該應(yīng)用程序可能會受到危害。

  保證 .NET 環(huán)境的安全性

  .NET 環(huán)境允許設(shè)置代碼訪問安全性。這意味著各個系統(tǒng)和應(yīng)用程序庫可以與不同的信任級別相關(guān)聯(lián)。這在某些環(huán)境中是非常重要的,例如,可以運行多個 Web 應(yīng)用程序的共享宿主環(huán)境??赡苡刹煌脩魮碛械拿總€ Web 應(yīng)用程序可能會要求彼此隔離與保護。此外,如果不進行這種隔離,每個 Web 應(yīng)用程序都可能影響關(guān)鍵的系統(tǒng)功能。

  本文假定 ASP.NET 用戶(IIS 代表該用戶運行)以最高信任級別運行。這就好像 Web 應(yīng)用程序在專門環(huán)境中運行一樣。

  ASP.NET 與 IIS 的關(guān)系

  在與 IIS 配合工作時,ASP.NET 支持三種身份驗證提供程序:Forms 身份驗證(使用應(yīng)用程序特定的邏輯)、Passport 身份驗證(由 Microsoft 提供的集中身份驗證服務(wù))和 Windows 身份驗證(使用直接通過 IIS 提供的身份驗證)。本文使用的是 ASP.NET 項目的默認身份驗證:Forms 身份驗證。身份驗證模式在 web.config 文件中指定。語法選擇如下。

<authentication mode = "{Windows|Forms|Passport|None}">
</authentication>

  流程圖中描述了用戶從 Web 客戶端登錄時要遵循的流程。

  請記住,這篇文章編寫于 2001 年,當(dāng)時的流程是相應(yīng)于 IIS 5.1 而言的,而不是目前的 IIS 6.0 或更高版本。

圖 1:IIS 與 ASP.NET 之間的安全流程

  ASP.NET 2.0 網(wǎng)站中基于角色的安全性

  初始安裝與配置

  web.config 文件/不常改動項

  web.config 文件中設(shè)置了一些影響 ASP.NET 2.0 Web 應(yīng)用程序總體運行情況的參數(shù)。示例參數(shù)包括,對成員身份提供程序(或數(shù)據(jù)庫)的引用、所需密碼強度以及是否要求注冊電子郵件。下面顯示了 web.config 文件中的相關(guān)部分,其中包含最低安全性配置值示例。詳細信息可通過以下方式獲得:訪問 Visual Studio 2005 幫助,然后查閱“Membership Members”。每個安全性參數(shù)在此均有詳細說明。

<providers>
<remove name="AspNetSqlMembershipProvider"/>
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider,
System.Web, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalSqlServer" 
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="true"
applicationName="/"
requiresUniqueEmail="false"
minRequiredPasswordLength="1"
minRequiredNonalphanumericCharacters="0"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
commentTimeout=""/>
</providers>

  除了上面顯示的 web.config 文件部分外,machine.config 文件中包含與 Membership 關(guān)聯(lián)的數(shù)據(jù)庫的默認連接字符串??梢栽?web.config 文件中配置一個不同的連接字符串。要添加附加安全性,可以編碼連接字符串,并可以加密 Membership 數(shù)據(jù)庫密碼。許多文章已針對這些折衷方法進行了論述。Microsoft 的快速入門指南(英文)中提供了有關(guān)如何在 web.config 文件中使用加密的很好的示例。

  web.config 文件/.aspx 頁面安全性

  可以為 Web 應(yīng)用程序中的每個網(wǎng)頁指定一個安全級別。通過指定訪問頁面所需具備的角色即可執(zhí)行此操作。web.config 文件中的語法非常簡單。例如,以下 web.config 片段指定了只有角色被指定為 Administrator 的用戶才能訪問網(wǎng)頁 MembershipGrid.aspx。

<system.web>
<location path="MembershipGrid.aspx" >
<system.web>
<authorization >
<allow roles="Administrators"/>
</authorization>
</system.web>
</location>
</system.web>

  又例如,要指定只有特定角色才能訪問某個子目錄中的所有頁面,則 web.config 文件如下。在本示例中,只有角色被指定為 Administrator 的用戶才能訪問 ~/AdminDir 路徑中的所有文件。

<system.web>
<location path="AdminDir" >
<system.web>
<authorization >
<allow roles="Administrators"/>
</authorization>
</system.web>
</location>
</system.web>

  web.config 文件/內(nèi)部 .aspx 頁面安全性

  很多時候,需要提供比上述更精確的安全性。也就是說,可能需要對控件(例如按鈕)或 aspx 頁面提供保護。為此,需要以編程方式更改與會受影響的控件關(guān)聯(lián)的屬性。例如,如果需要根據(jù)用戶角色隱藏某個刪除按鈕,則需要執(zhí)行兩步操作:首先,應(yīng)該把名為 ShowButtonBasedOnRole 的方法添加到網(wǎng)頁的 codebehind 類。如果用戶具備要求的角色,將返回 true;如果用戶不具備要求的角色,將返回 false

protected bool ShowButtonBasedOnRole(string RoleOfInterest)
{
return User.IsInRole(RoleOfInterest);  
}

  然后,在實際 aspx 頁面上,基于內(nèi)含代碼方法 ShowButtonBasedOnRole 來設(shè)置該按鈕的可見性屬性。該按鈕的實際聲明大致如下。

 

<asp:Button ID="Button1" runat="server" Text="按鈕" Visible=‘<%# (bool) ShowDeleteRowBasedOnRole("administrator") %>‘> />

  如果按鈕基于所設(shè)置的多個角色中的任何一個,則傳入?yún)?shù)可更改為字符串,并且在返回用戶是否被指定為其中某個角色的答案之前,將檢查所有這些角色。

  使用成員/角色管理器 aspx 頁面

  要使用本項中包含的 aspx 頁面 (Membership.aspx),需要執(zhí)行以下幾步操作。首先,需要復(fù)制文章項目文件中的兩個數(shù)據(jù)類并將它們包含在目標(biāo)項目的 app_code 目錄中。這兩個文件為 MembershipDataObject.cs 和 RoleDataObject.cs。然后,需要將 aspx 文件 Membership.aspx 及其內(nèi)含代碼頁面 Membership.aspx.cs 移到當(dāng)前項目中。

  一定要對此頁面提供保護,以防止任何未被指定為 Administrator 角色的用戶訪問它。否則,任何用戶都能夠修改其他用戶的登錄信息。為此,請確保 Membership.aspx 頁面在 web.config 文件中受到保護。web.config 文件中用來實現(xiàn)此目的的示例行如下。

<system.web>
<location path="Membership.aspx" >
<system.web>
<authorization >
<allow roles="Administrators"/>
</authorization>
</system.web>
</location>
</system.web>

  由于此頁面受到了保護,因此當(dāng)前登錄的用戶帳戶必須被指定為 Administrator 角色才能訪問此頁面。

  實現(xiàn)此目的的最好方法是執(zhí)行一次下面的代碼,然后從 Web 服務(wù)器中刪除該代碼。例如,可以在 ASP.NET 網(wǎng)頁的頁面加載事件中執(zhí)行。然后在調(diào)用此頁面之后,從服務(wù)器中將其刪除。這樣,只有使用密碼登錄帳戶 admin 才能訪問 Membership Management 頁面。

Roles.CreateRole("Administrator");
Roles.CreateRole("User");
Roles.CreateRole("Guest");
Membership.CreateUser("admin", "在此輸入強密碼");
Roles.AddUserToRole("admin", "Administrator");

  結(jié)論

  設(shè)置任何網(wǎng)站時,都務(wù)必確認將使用該網(wǎng)站的用戶并了解他們的相關(guān)安全性要求。例如,如果網(wǎng)站將供公司的內(nèi)部組使用,不會有外部用戶訪問,且不包含敏感數(shù)據(jù),那么配置簡單安全性就足夠了。即,不需要加密、松散密碼約束等。身份驗證可以作為跟蹤輸入數(shù)據(jù)的用戶身份的一種便利方法。反之,如果網(wǎng)站在 Internet 上并且會處理機密數(shù)據(jù),則一定要盡可能鎖定該網(wǎng)站,僅允許通過身份驗證的用戶進行訪問。

  本文簡要介紹了在設(shè)置 ASP.NET 網(wǎng)站的安全性時需要注意的事項,說明了如何添加安全頁面來修改登錄到網(wǎng)站的用戶的 Membership 和 Role 信息。本系列由兩篇文章組成,下一篇文章將假定讀者已了解開發(fā)網(wǎng)站時設(shè)置安全性方面的問題,并將詳細介紹 Membership Management 頁面的工作方式。

  作者簡介

  Peter Kellner 于 1990 年創(chuàng)辦了 73rd Street Associates,在此成功地為全國 500 多家客戶提供了有關(guān)大學(xué)醫(yī)務(wù)室調(diào)度、保險公司管理和一站式醫(yī)生診所管理的系統(tǒng)。十年后(即 2000 年),一家大型保險公司收購了 73rd Street Associates,于是 Peter 開始了作為獨立軟件顧問的新職業(yè)生涯。目前,他涉及的技術(shù)中包括 ASP.NET、Oracle、Java、VOiP,很快會包括 SQL Server。 不工作時,Peter 將他的大部分空閑時間花在騎車旅行上。他已騎車周游了全世界。最近,他和妻子 Tammy 只用了 27 天就完成了從美國加利福尼亞州騎車到喬治亞州的旅程。

  他的博客站點為 http://peterkellner.net/。您可以在下載區(qū)域找到本文和所列的代碼。

作者:Peter Kellner  來源:microsoft  (責(zé)任編輯:webjx) 
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ASP.NET 實現(xiàn)多站點統(tǒng)一登錄
asp.net web.config 設(shè)置Session過期時間
ASP.NET的高級配置Web.config和Machine.Config
編程中國 - 利用ASP.NET框架創(chuàng)建網(wǎng)站登陸
IIS_常見問題及解決方法
在 ASP.NET 中執(zhí)行 URL 重寫
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服