使用razor引擎在asp.net mvc4中管理会话
本文关键字:mvc4 管理 会话 net asp razor 引擎 使用 | 更新日期: 2023-09-27 18:15:07
我有一个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
)并登录到admin帐户。然后我拖放管理页面的url到另一个浏览器,如opera
,它的工作和显示的管理页面,尽管它是一个新的会话。
为什么会这样?如何管理会话以避免此问题?
您正在使用Upload.Models.CompteModels.Connected
来确定是否重定向到登录页面。
看起来你在服务器上缓存了这个值,所以不管谁访问这个页面,如果值为真,他们都会得到这个视图。
我建议您使用Authorize属性来保护页面:
[Authorize]
public ActionResult Index()
我猜您还没有锁定管理员页面的授权。您需要一些检查来确定当前用户是否经过身份验证,是否处于正确的角色中,等等。您使用什么进行身份验证和授权?
Authorize属性专门用于将页面锁定给经过身份验证的用户。另外,您可以指定允许哪些角色。