我在http://example.com上爲ASP.NET 4.0應用程序提供了Forms身份驗證設置 - 我們將其稱爲MainApp。 我也有一個在http://static.example.com上運行的ASP.NET 4.0應用程序(我們稱之爲SubApp)無法訪問主應用程序。在子域上獲取經過身份驗證的用戶的用戶名
現在,SubApp需要找出首次登錄到MainApp然後到達SubApp的用戶的用戶名。我認爲這兩個應用程序具有相同的機器密鑰並且允許SubApp在web.config中指定是足夠的,因此它可以讀取MainApp的身份驗證cookie並從中獲取用戶名。
我做了一個簡單的測試,當我嘗試在SubApp上點擊某個頁面時,它會一直重定向到http://static.example.com/login.aspx--它甚至不存在web.config中未指定的地方。顯然我的方法不起作用,但我不明白爲什麼 - 主域的cookie應該可以在子域上訪問,對吧?
這是我如何SubApp配置驗證:
<authentication mode="Forms">
<forms domain="example.com"/>
</authentication>
<authorization>
<allow users="*"/>
</authorization>
感謝達林,它似乎工作現在 - 我可以從HttpContext登錄用戶名。但我看到了另一個問題 - 如果沒有登錄,在格蘭用戶,但它仍然重定向他們的Login.aspx頁,即使我加入<授權> \t \t \t <允許用戶=「*」 /> \t \t授權> 到SubApp上的web.config。有任何想法嗎? – Andrey 2011-03-21 22:22:29
@Andrey,你是如何處理SubApp中的身份驗證的?誰在重定向?你爲什麼讓所有用戶? – 2011-03-21 22:26:04
我的SubApp只是一個處理程序,我用它來發布用戶的一些文件上傳。我想在該處理程序中執行的操作是查看用戶是否已通過身份驗證並繼續保存發佈的文件,如果用戶未通過身份驗證,則返回401。我不需要任何登錄頁面,因爲除了通過上傳處理程序,用戶不應該與SubApp交互。我使用SubApp – Andrey 2011-03-21 22:31:14