2010-03-17 14 views
0

我有2個asp.net web應用程序。表單身份驗證的困境,從app1調用App2上的http處理程序不驗證

http://app1.local/ 

http://app2.local/ 

App2的具有HttpHandler的取入一些憑證,並記錄在使用表單認證的用戶。

FormsAuthentication.SetAuthCookie(cookieUserName, createPersistentCookie); 
HttpCookie authCookie = context.Response.Cookies[FormsAuthentication.FormsCookieName]; 

我直接在瀏覽器中運行這個程序,當我在app2上打開另一個頁面時,我登錄的很好。

問題:

在APP1我有一個登錄頁面,那做了HttpWebRequest的到的HttpHandler上APP2。由於某種原因,當我使用相同憑證登錄時,然後轉到app2我沒有登錄到app2網站

這是爲什麼?

回答

0

他們是否有相同的cookie名稱? (FormsAuthentication.FormsCookieName)如果他們這樣做,他們可能會覆蓋對方。

憑證是相同的事實是無關緊要的(我認爲)。因爲它們是兩個不同的應用程序/站點,所以它們之間沒有明確的信任關係 - 用戶需要直接進行身份驗證(不奇怪)。因此,如果相同的表單身份驗證Cookie被覆蓋,則您以前的身份驗證將丟失。