0

在我的 Web 应用程序中,我想在控制器中的某些操作方法中添加授权,而不是在整个控制器上。我添加了以下内容

  [Authorize]
  public ActionResult ManageResturant(long Id = 0)
  {
  }

在 web.config 我添加了

<authentication mode="Forms" >
  <forms loginUrl="~/Auth/LogIn"/>
</authentication>

但是当我使用该操作方法时,页面加载正常,这是错误的,我希望页面重定向到登录页面

有什么建议么?

4

2 回答 2

1

感谢约翰的评论,在您提示问题出在我的代码中后,我真的找到了解决方案

我使用会话来存储登录用户,并使用 FormsAuthentication 确保所有用户都登录以使登录链接出现在他们面前

问题是当会话到期时 FormsAuthentication 仍在验证用户是否已登录,因此看起来用户已注销,但实际上他已使用表单身份验证登录

所以我做了什么 OnActionExecuting 方法我检查会话是否为空我为用户注销所以在这种情况下我确保用户已注销

于 2012-06-13T12:22:54.137 回答
0

设置看起来没问题,您确定要调用此操作吗?难道您没有其他名称为 ManageResturant 且没有 [Authorize] 注释的操作吗?

于 2012-06-13T11:59:13.800 回答