欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

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

  適用于:

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

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

  摘要

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

  簡(jiǎn)介

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

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

  安全性注意事項

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

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

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

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

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

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

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

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

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

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

  流程圖中描述了用戶(hù)從 Web 客戶(hù)端登錄時(shí)要遵循的流程。

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

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

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

  初始安裝與配置

  web.config 文件/不常改動(dòng)項

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

<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)的數據庫的默認連接字符串??梢栽?web.config 文件中配置一個(gè)不同的連接字符串。要添加附加安全性,可以編碼連接字符串,并可以加密 Membership 數據庫密碼。許多文章已針對這些折衷方法進(jìn)行了論述。Microsoft 的快速入門(mén)指南(英文)中提供了有關(guān)如何在 web.config 文件中使用加密的很好的示例。

  web.config 文件/.aspx 頁(yè)面安全性

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

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

  又例如,要指定只有特定角色才能訪(fǎng)問(wèn)某個(gè)子目錄中的所有頁(yè)面,則 web.config 文件如下。在本示例中,只有角色被指定為 Administrator 的用戶(hù)才能訪(fǎng)問(wèn) ~/AdminDir 路徑中的所有文件。

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

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

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

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

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

 

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

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

  使用成員/角色管理器 aspx 頁(yè)面

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

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

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

  由于此頁(yè)面受到了保護,因此當前登錄的用戶(hù)帳戶(hù)必須被指定為 Administrator 角色才能訪(fǎng)問(wèn)此頁(yè)面。

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

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

  結論

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

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

  作者簡(jiǎn)介

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

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

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

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久