簡體   English   中英

使用razor引擎管理asp.net mvc4中的會話

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM