1

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

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

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

4

1 回答 1

5

现在我想要进行检查,以便未登录的用户无法访问这些操作视图

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

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

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

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

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

于 2013-04-18T11:31:39.100 回答