2016-05-28 25 views
0

我做的,使用登錄表單2 MVC項目開始之前 我使用此代碼登錄在mvc4如何Request.IsAuthenticated工作正是

public ActionResult Login(AccountLog Usr) 
    { 
     AccountLog personindatabase = db.AccountLogs.FirstOrDefault(m => m.Usercode == Usr.Usercode); 

       FormsAuthentication.SetAuthCookie(personindatabase.UserName, true); 
       ViewBag.id = personindatabase.Usersid; 
       return RedirectToAction("Main", "Main");} 

當我運行程序時我首先檢查if(Request.IsAuthenticated)如果爲true返回查看,如果否則重定向到登錄頁面,因爲這

public ActionResult Main() 
    { 
     if (Request.IsAuthenticated) 
     { 
      return View(); 
     } 

     return RedirectToAction("Login", "Account"); 

    } 

它工作得很好,但我注意到,如果我運行的第一個程序並取得成功登錄並關閉它沒有作出註銷和運行尚未登陸第二個程序打開它,因爲它登錄的人這米如果我從第一個登錄,並打開第二它將打開罰款,反之亦然如何區分2項目登錄如何我可以作出替代Request.IsAuthenticated如果有問題的任何事情不清除發表評論以清除它能夠幫助我

+0

如果我理解正確,您是否在使用同一瀏覽器的同一時間嘗試兩次不同的登錄? –

+0

是的,我做了這個相同的瀏覽器,但不是在同一時間 –

回答

0

從你剛纔描述的你試圖登錄到相同的應用程序使用相同的瀏覽器會話在兩個不同的標籤沒有註銷第一個用戶。

當登錄成功時,在瀏覽器中設置了Authentication Cookie。這個cookie每次發送到服務器,以便服務器可以驗證用戶。

當您嘗試使用另一個帳戶登錄(或期望登錄)第二個選項卡時,您已經看到第一個用戶登錄爲該帳戶的Authentication Cookie仍然保留在瀏覽器中。身份驗證cookie將僅在用戶註銷時過期。

所以你可以。

  1. 測試兩個帳戶使用兩種不同的瀏覽器(例如Chrome和Firefox)
  2. 註銷第一個帳戶試圖在同一瀏覽器使用另一個帳戶登錄之前。

希望有所幫助!

+0

男子我不是指2人登錄到同一個應用程序,但我的意思是2個不同的應用程序說應用程序1稱爲超市和應用程序2稱爲動物園這是提交如果我使用相同瀏覽器,並嘗試登錄到超市應用程序並關閉它而不用註銷,並且在同一個瀏覽器中試圖運行第二個應用程序,因爲它與從第一個應用程序登錄的人一起登錄,儘管2應用程序使用不同的數據庫,我希望理解幫我 –

相關問題