Mvc校驗使用者沒有登入就跳轉的實現

2022-03-23 23:23:26 字數 972 閱讀 4996

看字面意思很簡單,就是判斷使用者是否登入了,如果沒有登入就跳轉到登陸頁面。

沒錯,主要**如下(這裡就不寫判斷登入了,直接跳轉)

首先在控制器中新建乙個basecontroller

public

class

basecontroller : controller

}

正常的控制器 比如 testcontroller 繼承basecontroller**如下

public

class

testcontroller : basecontroller

}

如此在直接訪問/test/index 的時候,由於繼承的basecontroller中進行了跳轉,所以頁面會成功的跳轉到/login/index

那麼至此,大功告成!

可是如果你真的這麼幹了,我會毫不誇張的告訴你,你死定了!一點不嚇人的告訴你

為什麼呢?

原因很簡單:斷點除錯發現乙個嚴重的問題,在執行完下列**之後

//

這裡判斷出沒有登入然後進行跳轉

response.redirect("

/role/index

");

並沒有立即跳轉到相應頁面,而是繼續去訪問了/test控制器下的index方法。

直至將test控制器下的index方法執行完畢,才在瀏覽器中顯示了/login/index頁面。

解決方法:

在跳轉的時候,不用response.redirect進行跳轉

而是將actionexecutingcontext的result屬性賦值為我們要跳轉的位址就ok了!

如下:

filtercontext.result = new redirectresult("

/login/index

");

如此這般,將不再繼續訪問test控制器下的index方法了!

使用者登入後跳轉到 登入前 的頁面 url 跳轉

在一般有使用者登入的 中,都會有需要使用者登入後才能操作的頁面,如果在使用者登入後能跳轉到之前的頁面,就會給使用者乙個很好的體驗,也能讓他們更容易的瀏覽要操作的頁面。這中間主要用到的是獲取url引數,獲取後用於跳轉。主要實現步驟 為了能很好的說明,主要已兩個頁面為例,order.aspx,login...

基於MVC構架的使用者登入簡單實踐

一 mysql資料表user drop table if exists user create table user id int 11 not null auto increment,username varchar 10 not null comment 使用者名稱 password varch...

vsftpd的虛擬使用者登入後沒有到達指定的使用者下

人員由於斷電導致檔案丟失,然後反饋ftp登入後,顯示的內容不對了。然後在作業系統也沒有找到這個ftp使用者。以前的普通使用者ftp可以連線,上週斷電系統以後裡面檔案丟失,在root上覆制移動原檔案到使用者目錄下,普通使用者那邊還是看不到 以前使用者 ftp下顯示的檔案內容是linux系統 home ...