欧美日韩精品在线,国内精品久久久久久久久,一级毛片恃级毛片直播,清纯唯美亚洲综合欧美色

ASP.NET七大身份驗證方式及解決方案_ASP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:8 種提升 ASP.NET Web API 性能的方法
ASP.NET Web API 是非常棒的技術。編寫 Web API 十分容易,以致于很多開發(fā)者沒有在應用程序結構設計上花時間來獲得很好的執(zhí)行性能。 在本文中,我將介紹8項提高 ASP.NET Web API 性能的技術。 1) 使用最快的 JSON 序列化工具 JSON 的序列化對整個 ASP.NET Web API 的性

   在B/S系統(tǒng)開發(fā)中,經(jīng)常需要使用“身份驗證”。因為web應用程序非常特殊,和傳統(tǒng)的C/S程序不同,默認情況下(不采用任何身份驗證方式和權限控制手段),當你的程序在互聯(lián)網(wǎng)/局域網(wǎng)上公開后,任何人都能夠訪問你的web應用程序的資源,這樣很難保障應用程序安全性。通俗點來說:對于大多數(shù)的內(nèi)部系統(tǒng)、業(yè)務支撐平臺等而言,用戶必須登錄,否則無法訪問和操作任何頁面。而對于互聯(lián)網(wǎng)(網(wǎng)站)而言,又有些差異,因為通常網(wǎng)站的大部分頁面和信息都是對外公開的,只有涉及到注冊用戶個人信息的操作,或者網(wǎng)站的后臺管理等才需要提示登錄。(如果不做嚴格驗證,后果將很嚴重,人家一旦猜出你web目錄下面的頁面名,可以隨意訪問。當然,一般的開發(fā)人員是不會犯這種低智商的錯誤的)。

  如何實現(xiàn)“身份驗證”

  記得N年前我最早接觸Servlet + JSP開發(fā)的時候,有一種叫做“過濾器”(Filter)的東西,真是很神奇。有了這件神奇的東西后,我再也不需要去每個頁面判斷什么“session”或者“cookie”了,就能把未登錄用戶給彈出去(水平實現(xiàn)有限)。當然,在傳統(tǒng)webform開發(fā)中,也可以寫一個“BasePage的雞肋”,在該類中去做判斷,讓每個頁面對應的類都去實現(xiàn)這個"雞肋",我看以前很多公司都是這么干的。

  在asp.net中,其實微軟提供了一整套的完整的機制來實現(xiàn)“成員角色管理”。包含有:”登錄控件”、“membership”、“個性化數(shù)據(jù)庫”等等。但是大多數(shù)開發(fā)人員是從來不用這些的(例如我,用微軟的asp.net三四年,還從來沒見過“登錄控件”長啥樣)。在asp.net身份驗證中,主要有三四種。因為有些身份驗證的方式是依賴于IIS和windows操作系統(tǒng)的,所以在不同版本的操作系統(tǒng)和IIS上還是有些差異的。由于筆者暫時使用的是windows 7的操作系統(tǒng),所以就拿IIS 7.5為例子。

  首先打開IIS,然后雙擊右側(cè)“身份驗證”,會顯示出當前IIS支持的所有的身份驗證方式(由于我安裝IIS時候,在“安全性”那里我是全部勾選的)。可以看到如圖:

ASP.NET七大身份驗證方式及解決方案

  大致分為如下幾種:

  1.活動目錄的客戶端證書(這個很可能是收費的),不常用,不細說。

  2.ASP.NET模擬(MSDN:如果要在 ASP.NET 應用程序的非默認安全上下文中運行 ASP.NET 應用程序,請使用 ASP.NET 模擬。),機器人說的我聽不懂。

  3.Form身份驗證:這個用的很多,后面會細說。

  4.windows身份驗證:基于windows操作系統(tǒng)的用戶或者域用戶的身份驗證。

  5.基本身份驗證:其實也是基于windows操作系統(tǒng)的賬戶驗證的。

  6.匿名身份驗證:誰都可以訪問,其內(nèi)部也是通過指定一個特定的windows系統(tǒng)的user賬戶來訪問的。

  7.摘要身份驗證:使用 Windows 域控制器對請求訪問 Web 服務器內(nèi)容的用戶進行身份驗證。

  再來看看經(jīng)典的 IIS 6的截圖:

ASP.NET七大身份驗證方式及解決方案

  注:.NET Passport 可以理解為微軟對“單點登錄”的一種實現(xiàn)方案,這里不細說。在“Open API” "SOA" “云計算”大行其道的今天,作為一個web程序員,如果你還沒聽說過“單點登錄”,請自行購買開往福州方向的動車票。

  先在IIS 7上測試一下基本身份驗證:

  首先把其他的身份驗證方式全部禁用掉,然后僅僅啟用“基本身份驗證”。有圖有真相:

ASP.NET七大身份驗證方式及解決方案

  然后打開IE、FireFox、chrome等瀏覽器,敲入localhost,等待打開IIS上的默認網(wǎng)站。你會發(fā)現(xiàn),瀏覽器端都會彈出提示框信息,而且在不同瀏覽器上彈出框的樣式和表現(xiàn)形式也有所差異。(長期不用IE,發(fā)現(xiàn)360這個老流氓把哥的首頁給改了,還號稱”安全上網(wǎng)“,這明顯是篡改行為嘛。搞不懂。)

ASP.NET七大身份驗證方式及解決方案

  FireFox中:

ASP.NET七大身份驗證方式及解決方案

  如果你在彈出框中,輸入正確的windows賬戶和密碼,則可以正常的瀏覽你請求的網(wǎng)頁。如果你不輸或者輸錯了,等待你的將是401錯誤(401,你懂得)。

ASP.NET七大身份驗證方式及解決方案

  ”沒有為網(wǎng)站啟用SSL,將通過電纜以明文的方式.....”,機器人說的話聽起來很別扭,這里,我解釋一下。

  當你沒有花錢去買SSL證書(安全套接層,你可以簡單的理解為:正常http請求都是明文傳送,使用SSL后可以幫你把http報文自動加密,就算有人在互聯(lián)網(wǎng)上截獲了也無法解密。我們偶爾訪問有些網(wǎng)站的時候,看到的“https://www.xxx.com”,就極可能是基于SSL證書的形式)。至于“通過電纜以明文的方式...”,其實這句話說的很不對,首先,電纜只是一種傳輸介質(zhì),里面?zhèn)魉偷闹皇请娒}沖、光信號等等,而不是網(wǎng)絡協(xié)議報文(學過計算機網(wǎng)絡的都知道)。至于說“采用明文的形式”,也不對,其實“基本身份驗證”中,是將用戶名和密碼采用了Base64編碼的,感興趣的讀者,可以用httpwatch或者Fiddler之類的工具去監(jiān)視一下http請求,我這里就不做演示了 。只是由于Base 64編碼很容易反編碼,所以和明文沒啥區(qū)別。這樣一來,你會發(fā)現(xiàn)“基本身份驗證”方式,確實存在很多不安全因素。

  在IIS 7上測試一下 windows 身份驗證:

  和之前的基本身份驗證差不多,我就不再截圖演示了。如果用戶輸入正確的windows用戶名和密碼,則能夠正常訪問網(wǎng)站。如果輸入錯誤的,則返回的401.1(前面基本身份驗證是401.2)。值得一提的就是,記得之前有位asp.net MVP 曾告訴過我,使用windows身份驗證的時候,只能用戶在使用IE瀏覽器時候才能夠正常訪問。因為這種情況下,不是使用http報文傳輸?shù)男问剑菫g覽器端直接與操作系統(tǒng)內(nèi)部交互,進行用戶名和密碼的驗證。經(jīng)過證實,發(fā)現(xiàn)這話的后半句是對的,確實監(jiān)視不到http實體內(nèi)容。但不僅僅局限于IE瀏覽器,我在firefox中也能夠正常的訪問和使用。

  匿名身份驗證:

分享:asp.net計算每個頁面執(zhí)行時間的方法
這篇文章主要介紹了asp.net計算每個頁面執(zhí)行時間的方法,涉及asp.net操作時間的相關技巧,非常具有實用價值,需要的朋友可以參考下 本文實例講述了asp.net計算每個頁面執(zhí)行時間的方法。分享給大家供大家參考。具體分析如下: 這里的asp.net代碼可實現(xiàn)計算每個頁面的執(zhí)行時

共2頁上一頁12下一頁
來源:模板無憂//所屬分類:ASP教程/更新時間:2015-05-08
相關ASP教程