我有兩個Web應用程序,成立了不同的Web服務器,這是目前雙方IIS6。應用程序1(A1 - a1.domain.com)使用由應用程序2(A2 - a2.domain.com)設置的表單身份驗證cookie。
在web.config中A1我:
<authentication mode="Forms">
<forms name=".ASPXAUTH" domain="domain.com" protection="All" path="/" loginUrl="http://a2.domain.com/login.aspx" timeout="60" />
</authentication>
在web.config中A2我:
<authentication mode="Forms">
<forms name=".ASPXAUTH" domain="domain.com" protection="All" path="/" loginUrl="login.aspx" timeout="60" />
</authentication>
這兩個應用程序在web.config中也分享的machineKey值
這完美無缺地工作。
問題:
我升級A1使用.NET 4.0和IIS7運行,現在的共享窗體身份驗證不起作用。我仍然被重定向到A2上的正確登錄頁面,並且我可以看到它設置了auth cookie,但是當我回到A1時,身份驗證失敗並顯示以下錯誤(來自事件查看器):
表單身份驗證失敗請求。原因:提供的票據無效。
我曾嘗試:
設置在IIS6 A1的升級版(這個工作 - 所以不存在兼容性問題窗體身份驗證之間在IIS6不同的.NET版本)
設置使用本地登錄頁面即複製登錄頁面從A2在IIS7升級A1到A1和設置A1 loginUrl =「login.aspx的」(也適用)
這讓我猜測,由於IIS6網站正在用於在IIS7網站下對用戶進行身份驗證而創建auth cookie,導致存在一些兼容性問題。
有誰知道如何解決這個問題?
謝謝,但不幸的是,這並沒有奏效。我不認爲我看到2.0和4.0之間的任何兼容性問題,因爲我已經在與A2相同的服務器上的IIS6中設置了A1(但使用了不同版本的.NET),並發現這可以工作。唯一不工作的是它跨越兩臺服務器,一臺使用IIS6,另一臺使用IIS7而不管.NET版本。 – Chris 2010-11-25 11:59:43