使用httpmodule驗證使用者登入

2021-06-22 17:11:44 字數 1415 閱讀 2825

當**要驗證使用者是否登入時,每個頁面都進行驗證,實在是一件費時費力的事情,當需要修改時,那更是純粹的浪費體力。

所以,我們可以採取當使用者請求**時,每個頁面都進行驗證,這就涉及到頁面的生命週期。

首先,要修改配置檔案,在web.config配置檔案中增加一節

其次是要寫驗證了,寫乙個類繼承system.web.ihttpmodule介面,然後在委託中追加方法來進行驗證

using system;

using system.collections.generic;

using system.linq;

using system.web;

namespace petshop

/// /// 驗證是否已經登入,找cookie,如果cookie沒有,為未驗證

///

///

///

else

//使用httpcontext物件傳遞資訊

//建立乙個表示使用者標識的物件

myidentity identity = new myidentity(name, "petshop");

//建立乙個表示使用者的物件

myprincipal principal=new myprincipal(identity,new string{});

context.items.add("user", principal);}}

}

在頁面上,只需要從context物件中獲取相應的屬性就好啦,context.items["user"]即可獲取到使用者物件

//獲得上下文物件

lable1.innertext = "請登入";

else

lable1.innertext = user.identity.name + ",歡迎您回來";

使用者登入時,需要把驗證後的使用者資訊存入到票據中

if (i***ist)

MVC全域性使用者驗證之HttpModule

在請求進入到mvc的處理mcvhandler之前,請求先到達httpmodule,因此可以利用httpmodule做全域性的使用者驗證。名稱描述 beginrequest http管道開始處理請求時,會觸發beginrequest事件 authenticaterequest,postauthenti...

HttpModule實現使用者身份驗證

本文資源全部來自於園子裡各牛 之前看jimmyzhang的asp.net執行原理,開篇既說要明白驗證就要先看asp.net執行原理,不然用控制項就是 微軟的使用者 了 現在看到這總算反應過來,原來驗證是在httpmodule裡進行的 目前觀點 首先來看一下httpmodule的生命週期 為了證明這個...

使用httpModule做許可權系統

reference 頁面請求過程 例如使用前者 usingsystem usingsystem.web usingsystem.security.principal namespacemymodules publicvoiddispose privatevoidauthenticaterequest...