2016-04-27 136 views
0

我正在開發ASP.Net MVC應用程序。我有一個管理員登錄表單。當管理員登錄時,它會被重定向到主頁。全局檢查管理員登錄

現在當我點擊Employee菜單時,它會重定向到Employee/Index。在Index方法中,我正在檢查Admin是否已登錄。我必須檢查每個方法的Employee控制器的管理員登錄。

有沒有辦法檢查所有管理區的管理員登錄名。這裏管理員可以創建,更新,刪除員工,存儲等等。那麼有沒有什麼辦法來檢查adminlogin只是一次,而不是索引,創建,刪除,編輯的所有方法?

任何像

// Controller of EmployeeController 
public EmployeeController() 
{ 
    if (Session["Admin"] == null) 
    { 
     // return to AdminLogin 
    } 
} 

因爲當我在瀏覽器中輸入url - localhost:9999/Admin/Employee/Create,它會被重定向到創建頁面,而無需登錄。我不想檢查控制器的所有方法。

+0

我更新了你的標題以反映你的問題 - 因爲它是像XY問題一樣閱讀,你認爲這個問題的解決方案是從構造函數(?)返回結果 - 它不是,但在ASP.NET MVC你的問題有一個非常標準的解決方案 – Jamiec

+0

您是否正在使用Identity?如果是,請使用[Authorize(Roles =「Admin」)]來修飾您的操作方法 –

+0

我在數據庫中存儲了'Usesrname'和'password'。 – DhavalR

回答

0

爲了避免錯別字特別是在使用Authorize的情況下,我會建議你裝修能做到這一點時,具有對Roles

public static class Roles 
    { 
     public const string Admin = "Admin"; 
    } 

靜態類,然後執行;

[Authorize(Roles = Roles.Admin)] 

因爲你不想重新輸入"Admin"每次當你輸入錯誤可能導致一個錯誤代碼。