0

我們使用ASP.NET 4.0與IIS。我們去了MVC路線。重新驗證後,用戶返回上一頁的最安全方式是什麼?

我們正在開發一個使用會話變量的網站,當該變量重置時,用戶必須再次登錄才能重新進行身份驗證。 我們檢查用戶是否通過身份驗證的方式是加載每個頁面並檢查會話變量是否有效。

我們希望將用戶發回他們最後工作的地方,而不是索引頁面,但我們想知道最安全的做法。

我們有兩個思路的時刻:

  1. 可能使用一個Cookie在一定程度上
  2. 使用這種方式的查詢字符串:

    If SessionAuth = "Y" Then 
         ViewBag.sessionauth = SessionAuth 
         Dim SessionUserid As String = CType(HttpContext.Session("userid"), String) 
         Dim SessionUsername As String = CType(HttpContext.Session("username"), String) 
         ViewBag.SessionUserid = SessionUserid 
         ViewBag.SessionUsername = SessionUsername 
    Else 
         Dim pageId As String = Request.Url.AbsoluteUri 
         Return Redirect("/~~~/login.asp?pageid=" & pageId) 
    End If 
    

你這是什麼都覺得呢?

P.S. 「/ ~~~ /」只是隱藏項目名稱。

+0

查詢字符串是如何,這是典型的做法。 '?RETURNURL = original.aspx'。 –

+0

我不確定「返回用戶的最安全方式」是什麼意思。您在重定向時擔心什麼安全風險? – mason

+0

@mason我不知道有任何安全風險,這就是我問的原因。我不想編碼,並以任何方式造成安全風險。 – Soulevoker

回答

1

通常,通過在web.config中指定身份驗證節點來處理身份驗證。例如,對於基於表單的身份驗證你會把:

<authentication mode="Forms"> 
     <forms name=".ADUAUTH" loginUrl="Login/login " protection="All" timeout="30" /> 
</authentication> 

還與authenication超時同步會話超時

<sessionState mode="StateServer」 cookieless="false" timeout="30" /> 

loginUrl就是ASP.NET將發送用戶指定的RETURNURL只要他們的身份驗證cookie無效。 (例如http://myapp.com/Login/login?ReturnUrl=/The_Page_I_was_On

退房How ASP.NET Security Works

相關問題