_start.cshtml视图未执行

时间:2013-04-18 11:28:43

标签: c# asp.net-mvc

我在我的应用程序中使用Asp.Net MVC-4。我创建了一个控制器,例如说 Person ,在这个控制器中我有3个动作,例如说 GetName GetAge GetDateOfBirth 。现在我想要的是进行检查,以便未登录的用户无法访问这些操作视图。

为此,我尝试使用_start.cshtml视图。我放在Views/Person/内部,我希望每当任何用户访问 Person 文件夹内的任何视图时,_start.cshtml视图应该在任何其他视图之前运行。在* _start.cshtml *我放置了一个代码来检查当前用户是否登录。但_star.cshtml没有执行。

有谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:5)

  

现在我想要的是检查一下,以便那些不是的用户   loggedin无法访问这些操作视图

这绝对不是应该在视图中完成的,而是在控制器操作上,通过使用[Authorize]属性进行装饰。例如:

[Authorize]
public ActionResult SomeAction()
{
    ...
}

您还可以指定一个或多个角色:

[Authorize(Roles = "Admin")]
public ActionResult SomeAction()
{
    ...
}

您还可以使用此属性修饰控制器,这意味着其中的所有操作都需要授权。