做**時往往需要在每個頁面驗證使用者是否已登入,若沒登入系統就重定向到登入頁面。這個驗證的過程在哪做呢?初學者最常用的方法就是在每個頁面的page_load事件中進行session中使用者的驗證,即如下**:
如果這麼做,上面的**就會出現在站點所有需要身份驗證的頁面中,**複製這麼多遍就知道不是很好的解決方案。這裡就用其它兩種方法來解決這個問題。
ø 方法一:用global檔案
ø 方法二:用.net自帶的form(表單)驗證
兩種方法實現上述功能都很簡單,尤其是.net自帶的form認證用起來很靈活,對於各種許可權問題基本都能解決。下面進行簡單描述:
這個很容易想到,因為global為全域性檔案,每一請求都會先經過該檔案的處理,所以在這裡進行身份驗證即可代替所有頁面內的身份驗證了。至於global檔案內的事件及其作用這裡不多說。
void session_start(object sender, eventargs e)
}
這樣就實現了上面的在每個頁面進行身份驗證的相同功能。(注:上面這樣用session進行身份驗證的方法都不允許多使用者在同乙個瀏覽器進行登入操作)
到此就解決上面的問題了。下面簡單說一下form(表單)驗證的web.config的配置原則,例如我的專案目錄結構如下:
(2). 直接修改原配置檔案,在configuration節下加乙個location節,如下為修改後的配置檔案:
若想讓根目錄下的default.aspx頁面不用經過身份驗證,只需將上面location的path屬性設為」 default.aspx」即可。
.net自帶的表單驗證,其實質是使用乙個特定的 cookie,在每次請求伺服器時驗證該 cookie 是否存在,從而決定使用者是否具有相應的許可權。這種方式用起來很方便,也比用session驗證的方式安全的多,它還可以實現不同目錄的按角色的許可權控制,用起來很靈活,有需要的網上找資料即可。
站點頁面身份驗證問題
做 時往往需要在每個頁面驗證使用者是否已登入,若沒登入系統就重定向到登入頁面。這個驗證的過程在哪做呢?初學者最常用的方法就是在每個頁面的page load事件中進行session中使用者的驗證,即如下 如果這麼做,上面的 就會出現在站點所有需要身份驗證的頁面中,複製這麼多遍就知道不是很好的解決方案。...
Forms 身份驗證
配置應用程式使用 forms 身份驗證 如果應用程式的根目錄中有 web.config 檔案,請開啟該檔案。複製 在system.web元素中,建立乙個authentication元素,並將它的mode屬性設定為 forms,如下面的示例所示 複製 在authentication元素中,建立乙個fo...
WebService身份驗證
web service身份驗證解決方案一 通過通過soap header身份驗證。1.我們實現乙個用於身份驗證的類,檔名mysoapheader.cs mysoapheader類繼承自system.web.services.protocols.soapheader。且定義了兩個成員變數,userna...