返回首頁
當前位置: 主頁 > 網絡編程 > .Net實例教程 >

ASP.NET-安全

時間:2020-01-16 16:13來源:知行網www.wzliqi.com 編輯:麥田守望者

 在站點中實現安全性具有以下方面:

  • 認證:這是確保用戶身份和真實性的過程。ASP.NET允許四種類型的身份驗證:

    • Windows驗證
    • 表格認證
    • 護照認證
    • 自訂驗證
  • 授權:這是定義特定角色并將其分配給特定用戶的過程。

  • 機密性:它涉及加密客戶端瀏覽器和Web服務器之間的通道。

  • 完整性:涉及維護數據的完整性。例如,實現數字簽名。

基于表單的身份驗證

傳統上,基于表單的身份驗證涉及編輯web.config文件并添加具有適當身份驗證代碼的登錄頁面。

可以編輯web.config文件,并在其上編寫以下代碼:

<configuration>  <system.web>    <authentication mode="Forms">       <forms loginUrl ="login.aspx"/>    </authentication>        <authorization>       <deny users="?"/>    </authorization> </system.web> ... ... </configuration>

上面的代碼片段中提到的login.aspx頁面可能在文件后面包含以下代碼,其中包含用于身份驗證的用戶名和密碼。

protected bool authenticate(String uname, String pass) {    if(uname == "Tom")    {       if(pass == "tom123")          return true;    }        if(uname == "Dick")    {       if(pass == "dick123")          return true;    }        if(uname == "Harry")    {       if(pass == "har123")          return true;    }        return false; }  public void OnLogin(Object src, EventArgs e) {    if (authenticate(txtuser.Text, txtpwd.Text))    {       FormsAuthentication.RedirectFromLoginPage(txtuser.Text, chkrem.Checked);    }    else    {       Response.Write("Invalid user name or password");    } }

請注意,FormsAuthentication類負責身份驗證過程。

但是,Visual Studio允許您通過“網站管理”工具無縫地輕松實現用戶創建,身份驗證和授權,而無需編寫任何代碼。該工具允許創建用戶和角色。

除此之外,ASP.NET還帶有現成的登錄控件集,該控件具有為您執行所有作業的控件。

實施基于表單的安全性

要設置基于表單的身份驗證,您需要以下內容:

  • 支持身份驗證過程的用戶數據庫
  • 使用數據庫的網站
  • 用戶帳號
  • 的角色
  • 限制用戶和小組活動
  • 默認頁面,用于顯示用戶的登錄狀態和其他信息。
  • 登錄頁面,允許用戶登錄,檢索密碼或更改密碼

要創建用戶,請執行以下步驟:

步驟(1):選擇網站-> ASP.NET配置打開Web應用程序管理工具。

步驟(2):單擊“安全性”選項卡。

安全標簽

步驟(3):通過選擇“來自Internet”單選按鈕,將身份驗證類型選擇為“基于表單的身份驗證”。

認證類型

步驟(4):點擊“創建用戶”鏈接以創建一些用戶。如果您已經創建了角色,則可以在此階段將角色分配給用戶。

創建用戶鏈接

步驟(5):創建一個網站并添加以下頁面:

  • Welcome.aspx
  • Login.aspx
  • CreateAccount.aspx
  • 密碼恢復.aspx
  • ChangePassword.aspx

步驟(6):從工具箱的登錄部分將LoginStatus控件放在Welcome.aspx上。它具有兩個模板:LoggedIn和LoggedOut。

在LoggedOut模板中,有一個登錄鏈接,而在LoggedIn模板中,該控件上有一個注銷鏈接。您可以從“屬性”窗口更改控件的登錄和注銷文本屬性。

登錄狀態控制

步驟(7):從LoginStatus控件下面的工具箱中放置一個LoginView控件。在這里,您可以放置​​文本和其他控件(超鏈接,按鈕等),這些控件根據用戶是否登錄而顯示。

該控件有兩個視圖模板:匿名模板和LoggedIn模板。選擇每個視圖并為每個模板寫一些要顯示給用戶的文本。文字應放在標有紅色的區域。

登錄視圖控件

步驟(8):應用程序的用戶由開發人員創建。您可能希望允許訪問者創建用戶帳戶。為此,在LoginView控件下添加一個鏈接,該鏈接應鏈接到CreateAccount.aspx頁。

步驟(9):在創建帳戶頁面上放置一個CreateUserWizard控件。將此控件的ContinueDestinationPageUrl屬性設置為Welcome.aspx。

CreateUserWizard控件

步驟(10):創建登錄頁面。在頁面上放置一個登錄控件。LoginStatus控件自動鏈接到Login.aspx。要更改此默認設置,請在web.config文件中進行以下更改。

例如,如果要將登錄頁面命名為signup.aspx,請將以下行添加到web.config的<authentication>部分:

<configuration>    <system.web>       <authentication mode="Forms">          <forms loginUrl ="signup.aspx" defaultUrl = “Welcome.aspx” />       </authentication>    </system.web> </configuration>

步驟(11):用戶經常忘記密碼。PasswordRecovery控件可幫助用戶獲得對該帳戶的訪問權限。選擇登錄控件。打開其智能標記,然后單擊“轉換為模板”。

自定義控件的UI,以將超鏈接控件放置在登錄按鈕下,該按鈕應鏈接到PassWordRecovery.aspx。

密碼恢復控制

步驟(12):在密碼恢復頁面上放置一個PasswordRecovery控件。該控件需要一個電子郵件服務器將密碼發送給用戶。

密碼恢復控制2

步驟(13):在Welcome.aspx中的LoginView控件的LoggedIn模板中,創建指向ChangePassword.aspx頁的鏈接。

ChangePassword控制

步驟(14):在更改密碼頁面上放置一個ChangePassword控件。此控件也有兩個視圖。

ChangePassword控件2

現在運行該應用程序,并觀察不同的安全操作。

要創建角色,請返回到Web應用程序管理工具,然后單擊“安全性”選項卡。單擊“創建角色”,然后為應用程序創建一些角色。

Web應用程序管理

單擊“管理用戶”鏈接,然后為用戶分配角色。

管理用戶

IIS身份驗證:SSL

安全套接字層或SSL是用于確保安全連接的協議。啟用S​​SL后,瀏覽器會加密發送到服務器的所有數據,并解密來自服務器的所有數據。同時,服務器對與瀏覽器之間的所有數據進行加密和解密。

安全連接的URL以HTTPS而不是HTTP開頭。瀏覽器會使用安全連接顯示小鎖。當瀏覽器最初嘗試使用SSL通過安全連接與服務器通信時,服務器將通過發送其數字證書來對自身進行身份驗證。

要使用SSL,您需要從受信任的證書頒發機構(CA)購買數字安全證書,并將其安裝在Web服務器中。以下是一些值得信賴的知名認證機構:

  • www.verisign.com
  • www.geotrust.com
  • www.thawte.com

SSL內置在所有主要的瀏覽器和服務器中。要啟用SSL,您需要安裝數字證書。各種數字證書的強度取決于加密期間生成的密鑰的長度。長度越長,證書和連接就越安全。

強度 描述
40位 大多數瀏覽器都支持,但容易破解。
56位 比40位強。
128位 很難破解,但所有瀏覽器都不支持。
------分隔線----------------------------
標簽(Tag):
------分隔線----------------------------
推薦內容
  • ASP.NET-數據緩存

    什么是緩存? 緩存是一種將經常使用的數據/信息存儲在內存中的技術,因此,當下次需要...

  • ASP.NET-安全

    在站點中實現安全性具有以下方面: 認證 :這是確保用戶身份和真實性的過程。 ASP.NET...

  • ASP.NET-LINQ

    大多數應用程序都以數據為中心,但是大多數數據存儲庫都是關系數據庫。 多年來,設計...

  • ASP.NET-調試

    通過調試,開發人員可以逐步查看代碼的工作方式,變量的值如何更改,對象的創建和銷毀...

  • ASP.NET-錯誤處理

    ASP.NET中的錯誤處理包括三個方面: 跟蹤 -在頁面級別或應用程序級別跟蹤程序執行。 ...

  • ASP.NET-個性化

    網站設計用于用戶的反復訪問。 個性化允許站點記住用戶身份和其他信息詳細信息,并為...

猜你感興趣
久久99久久99精品免视看