[英]Managing sessions in asp.net mvc4 with razor engine
我有一个asp.net应用程序mvc4。 我有一个身份验证视图:用户以普通用户或管理员身份登录。
[OutputCache(NoStore = true, Duration = 0)]
public ActionResult Index()
{
if (Upload.Models.CompteModels.Connected)
{
Upload.Models.ClientModels model1 = new Models.ClientModels();
List<ClientModels> client = model1.Client_List();
Upload.Models.AkeoModels model2 = new Models.AkeoModels();
List<AkeoModels> akeo = model2.Akeo_List();
MemberModels m = new MemberModels();
m.AkeoModels = model2.Akeo_List();
m.ClientModels = model1.Client_List();
return View(m);
}
else return RedirectToAction("Login", "Account");
}
如果我在浏览器中启动应用程序,例如chrome
并登录管理员帐户。 然后我将管理页面的URL拖放到另一个浏览器,如opera
它的工作,并显示管理员的页面,尽管它是一个新的会话。
为什么会这样? 如何管理会话以避免此问题?
我的猜测是你没有锁定管理员页面的授权。 您需要检查以确定当前用户是否经过身份验证,角色是否正确等等。您使用什么进行身份验证和授权?
Authorize属性专门用于将页面锁定到经过身份验证的用户。 此外,您可以指定允许的角色。
您正在使用Upload.Models.CompteModels.Connected
来确定是否重定向到登录页面。
您似乎在服务器上缓存此值,因此无论谁访问该页面,如果值为true,它们将获得该视图。
我建议您使用Authorize属性来保护页面:
[Authorize]
public ActionResult Index()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.