簡體   English   中英

MVC 3表單身份驗證在Internet Explorer中不起作用會保持重定向到登錄頁面

[英]MVC 3 Forms Authentication not working in Internet Explorer keeps redirecting to login page

我在ASP.NET MVC 3中實現了一些可愛的表單身份驗證,這在Chrome中運行得非常好。 現在是世界上最糟糕的瀏覽器Internet Explorer的時間測試。 我只是簡單地進入登錄,每次單擊提交按鈕時頁面都會返回到登錄頁面。 憑證是正確的。 我已經介紹了代碼,我正在使用RedirectToAction到頁面,並且沒有錯誤被標記它只是直接返回登錄頁面。

我應該指出我已經嘗試過以下方法:

  • 刪除了webmatrix dll和dependancies
  • 刪除了System.Web.Helpersn
  • 這些都已從VS2010中的bin,引用和bin_deploayableAssemblies文件夾中刪除

我還將以下內容添加到web.config appsettings:

<add key="enableSimpleMembership" value="false" />
<add key="autoFormsAuthentication" value="false" />
<add key="loginUrl" value="~/LoginReg/LogOn"/>

這是我的完整web.config:

http://pastebin.com/t6cj6cSb

我應該指出我的登錄頁面位於一個名為Login Login的文件夾中,因此url將是/ LoginReg / LogOn。

這在chrome中完美運行,但由於某些原因,它在Internet Explorer中不起作用。

有沒有人有任何想法來解決這個非常惱人的問題或有任何有用的文章

謝謝

表單身份驗證創建一個http cookie以維護請求之間的身份驗證狀態 確保在IE中啟用了Cookie。

我找到了一個奇怪的解決方案,在我的情況下,我有一個MVC3解決方案,當然我的問題與原始帖子相同,我做的很奇怪:

  1. 我將LogOn get / post方法重命名為LoginPageView
  2. 當然,我為LoginPageView Controller操作創建了相應的VIEW

     [HttpGet] public ActionResult LoginPageView() { return View(); } 
  3. 我跑了,我可以重定向到解決方案上的任何其他控制器操作,當然在我需要的方法上處理[Authorize]或不授權屬性。

  4. 問題解決了。

這是通過向FilterConfig.cs文件添加全局過濾器來解決我的問題的解決方案。

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
       filters.Add(new AuthorizeAttribute());
    }
}

現在登錄與Internet Explorer和Microsoft Edge瀏覽器完美配合。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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