2013-07-24 38 views
1

我已經在我的項目周圍包裝了一些代碼以啓用用戶驗證。它似乎使用FormsAuthentication以及.NetCasAuthentication。當用戶想要登錄,我重定向到其URL保存在 DotNetCasClient.CasAuthentication.FormsLoginUrl,而且,登錄成功嘗試後,設置User.Identity對象的外部頁。到現在爲止還挺好。如何註銷用CAS在外部頁面上驗證的用戶,FormsAuthentication

現在,我該如何正確簽署用戶?

我已經試過

  • FormsAuthentication.SignOut()
  • 到期幾個餅乾的建議here
  • 甚至明確抵消用戶對象:HttpContext.Current.User = new GenericPrincipal(new GenericIdentity(string.Empty), null);

但是,當我發送另一個請求我的應用程序,它仍然能夠在某處找到用戶的信息。

是否將CasAuthentication保存到cookie?或者它更有可能位於外部登錄頁面定義的某個獨特位置?我可以選擇重定向到相應的外部註銷頁面,但我不知道如何做到這一點,而不重定向到它並離開我的應用程序,我不想這樣做。

感謝您的閱讀。

回答

1

我仍然不確定是什麼導致了幻像註銷,但我能夠解決我遇到的問題。

我包括在我的應用程序的登錄和註銷頁面的iframe,它的源代碼(SRC)分別指向外部登錄和註銷頁面。告訴CAS重定向到哪裏,以驗證FormsAuthentication憑證後,我不得不在登錄iframe的src網址的結尾查詢字符串,看起來像?TARGET=http%3a%2f%2fsome.url.aspx

追加(目標URL被轉義。 「%3A」的網址編碼爲一個冒號(:)和「%2F」是一個正斜槓(/))

所以,比如說,外部登錄網址爲https://www.externalsite.com/login,我想在登錄後重定向到我http://www.mysite.com/welcome.aspx歡迎頁面,我的應用程序的登錄頁面iframe src需要是

`https://www.externalsite.com/login?TARGET=http%3a%2f%2fwww.mysite.com%2fwelcome.aspx` 

Af這樣做,一切似乎工作正常。

我找不到爲目標的查詢字符串的文件,但它似乎是關係到「targetService」參數描述here

相關問題