在我的Web应用程序中,我想在控制器中的某些操作方法中添加授权,而不是在整个控制器上。我添加了以下
[Authorize]
public ActionResult ManageResturant(long Id = 0)
{
}
并在web.config中添加了
<authentication mode="Forms" >
<forms loginUrl="~/Auth/LogIn"/>
</authentication>
但当我转到该操作方法时,页面正常加载,这是错误的,我希望页面重定向到登录页面
有什么建议吗?
答案 0 :(得分:1)
感谢John的评论,在您提示我的代码
之后,我确实找到了解决方案我使用会话来使用FormsAuthentication存储登录用户,以确保所有用户都登录以使登录链接显示给他们
问题是当会话到期时,FormsAuthentication仍然将用户验证为登录用户,因此看起来用户已注销,但实际上他已使用表单身份验证登录
所以我做了什么OnActionExecuting方法我检查会话,如果它的null我为用户注销,所以在这种情况下,我确保用户已注销
答案 1 :(得分:0)
设置看起来没问题,您确定要调用此动作吗?在没有[授权]注释的情况下,您是否还有另一个名为ManageResturant的Action?