[英]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.