2016-04-27 137 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"每次当你输入错误可能导致一个错误代码。