2013-06-13 47 views
0

我有一個ASP 4.0 Web窗體應用程序和一個ASP MVC 4.5應用程序,我需要共享表單身份驗證。不過,雖然我確認使用fiddler將auth cookie設置爲對第二個應用程序的請求,但它仍然會重定向到登錄頁面。共享ASP表單身份驗證在同一個域上失敗

我已經在每個應用程序中使用了相同的機器密鑰,如here所述。我也創建了新的項目來測試這個,然而他們確實工作。

回答

2

問題出現在.NET 4.5中,有加密增強功能,這意味着雖然我爲每個應用程序指定了相同的機器密鑰,但它們的解密方式不同。新的ASP 4.5項目使用httpRuntime元素(見下文)將targetFramework設置爲4.5,而第二個項目使用.NET 4.0,因爲它沒有targetFramework集。

<httpRuntime targetFramework="4.5" /> 

所以,我可以要麼在第二個項目的目標.NET 4.5或,以避免升級的任何錯誤,我可以指定二期項目使用.NET 4.5的加密增強了機器的關鍵,而繼續使用.NET 4.0。

<machineKey compatibilityMode="Framework45" /> 
+0

花了將近一天的時間思考這個問題在別處,完全忘記了.NET框架在不同的地方使用。希望這可以節省別人的時間。 –

+0

作爲另一種選擇,您可以將ASP.NET 4.5應用程序設置爲使用compatibilityMode =「Framework20SP2」的較舊加密方法。 http://msdn.microsoft.com/en-us/library/system.web.configuration.machinekeysection.compatibilitymode(v=vs.110).aspx –