1. 程式人生 > >[本週] 就來說說Asp.net 身份驗證、授權

[本週] 就來說說Asp.net 身份驗證、授權

[本週]如約而至;時間是爭取來的,這回的[本週]是把若干零碎的時間利用起來成文的,完成對Asp.net身份驗證、訪問授權等內容的梳理,可能漏掉的東西會比較多,漏掉的還是希望大家來補充。順便說一下上次[本週]Ajax 那點事 題目我認為很平實很低調了,沒料到還是被批評了,這回考慮一下用了一個白開水一樣的題目,沒有問題了吧?言歸正傳……

觀其大略:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.Asp.net是依存於IIS的一個服務,說到Asp.net的安全相關的話題當然要有一個整體上的思路:

IIS接收IIS驗證IIS授權---ASP.net驗證---Asp.net授權---》資源返回給使用者
IIS
從網路上接收到一個HTTP WEB請求可以使用SSL技術來保證伺服器的身份,此外SSL也可以提供一個安全通道來保護客戶端和伺服器端的機密資料的傳送。IIS使用基本 摘要式 或者其它的方式驗證使用者,如果網站中的大部分內容不需要驗證就可以設定為匿名驗證。驗證之後是授權,通過授權IIS來允許或者禁止使用者訪問某資源。IIS可以使用ACL定義的NTFS許可權或者針對IP地址的客戶端授權。
IIS
Windows存取令牌傳送到Asp.net,如果IIS使用的是匿名驗證則為匿名Internet
使用者的存取令牌(IUSER_MYMACHINE)。ASP.net驗證訪問者(有三種方式)。Asp.net授權所需要的資源或者操作(有兩種授權方法)。
Asp.net
中程式的程式碼使用特別的身份來存取本機或者遠端資源。

2.身份驗證:身份驗證就是一個解決誰有權力進入系統的問題,通常的做法就是跟系統維護的使用者名稱單進行核對,這樣轉化為一個實際的技術問題:如果有效的判斷一個使用者是不是系統的有效使用者。這個過程就是—Authentication(身份驗證)
專業說法:接收使用者憑據,並根據指定的頒發機構來驗證憑據的過程成為身份驗證

3.Asp.net 提供三種身份驗證方式:Windows驗證 Forms

驗證 Passport驗證身份驗證的使用是通過配置Web.config檔案的< Authentication >配置節來實現的。

4.授權:授權就是確認使用者擁有足夠的許可權來訪問請求的資源

5.Asp.net提供兩類授權服務:檔案授權服務 URL授權服務

說點細節

1.< Authentication >配置節mode可用的引數:None Windows Forms Passport

2.Windows:IIS根據程式的設定執行身份的驗證(基本 簡要 或者整合Windows)
注意使用這種驗證方式IIS中必須要禁用匿名訪問。

3.Windows驗證適用於受控環境中,比如企業的Intranet

4.Foms這種驗證使用Cookie儲存使用者憑證,並將未將驗證的使用者重定向到登入頁。通常這是的IIS配置為匿名訪問

5.Forms適合部署於網際網路的網站應用

6.Passport驗證是通過微軟的集中身份驗證服務執行的,它為成員站點提供單點登入和配置檔案服務

7.Passport適用於跨站點應用,一旦使用者登出所有的護照資訊就會清除,可以在公共場所使用它。

8.ACL面向的是檔案,IIS提供通過驗證的使用者,通過比較ACL呼叫標記完成授權

9.URL授權檢查的根據是URL本身而不是URL對應的檔案,URL授權可以是應用程式像基於窗體的身份驗證或者Passport的身份整合驗證,因為這些驗證中的使用者和計算機或者域中的賬戶並不對應。還控制對虛擬資源的訪問。

10.URL授權的配置:授權指令:allow deny 對應操作物件是roles users 還可以使用Verb屬性區別不同的HTTP行為(POST /GET

11.通常情況下使用者訪問一個網站都是使用匿名訪問,匿名訪問的使用者都會轉化為作業系統上的一個帳號來訪問伺服器
<authentication mode=”windows”>
<identity impersonate=”true”>

12.Windows驗證使用者通過了驗證之後,Asp.net會觸發Global.asax檔案中的WindowsAuthentication_OnAuthenticate事件,可以在這裡新增程式碼把使用者資訊附加到請求上。

13.Passport驗證的問題是有多少網站願意把自己的使用者資料放在微軟的資料庫中?

14.Asp.net使用基於角色的安全:把使用者對映到一個角色組裡面,這個角色組對應一定的許可權,這樣就實現了對一個群體的許可權管理。所以角色應該是對一組具有相同許可權使用者的抽象。

上面所說的都是可以應用於實踐的,問題集中在web.config的配置,和一些初始化操作,大家和容易找到相關內容,我還是提供一個綱要,呵呵;夜深了,睡了,晚安!

順便問一句:愛要怎麼說出口?

堅強2002

200785日夜

堅強2002和你一起回頭再說...