我在我的应用程序中使用Asp.Net MVC-4
。我创建了一个控制器,例如说 Person ,在这个控制器中我有3个动作,例如说 GetName , GetAge 和 GetDateOfBirth 。现在我想要的是进行检查,以便未登录的用户无法访问这些操作视图。
为此,我尝试使用_start.cshtml
视图。我放在Views/Person/
内部,我希望每当任何用户访问 Person 文件夹内的任何视图时,_start.cshtml
视图应该在任何其他视图之前运行。在* _start.cshtml *我放置了一个代码来检查当前用户是否登录。但_star.cshtml没有执行。
有谁能告诉我我做错了什么?
答案 0 :(得分:5)
现在我想要的是检查一下,以便那些不是的用户 loggedin无法访问这些操作视图
这绝对不是应该在视图中完成的,而是在控制器操作上,通过使用[Authorize]
属性进行装饰。例如:
[Authorize]
public ActionResult SomeAction()
{
...
}
您还可以指定一个或多个角色:
[Authorize(Roles = "Admin")]
public ActionResult SomeAction()
{
...
}
您还可以使用此属性修饰控制器,这意味着其中的所有操作都需要授权。