我不熟悉此AJAX方法,但不應使用UpdatePanel
,而是使用WebMethod
s和WebService
s。我的主要問題是身份驗證。Webmethod身份驗證未通過
當輸入頁面或創建回發請求時,一切正常。身份驗證正確傳遞,我可以訪問Thread.CurrentPrincipal.Identity
並從那裏獲取我的用戶身份對象。
但是,當我嘗試在我的頁面上呼叫WebMethod
時,此更改。調用正確地傳遞給服務器,並且一切似乎都很好,直到我嘗試從線程獲取用戶標識。然後,我只得到Anonymous
用戶,而不是真正的用戶。在webmethod上啓用會話似乎沒有多大幫助。
任何想法可能會導致此問題,以及如何解決它?有人提到認證cookie需要與請求一起傳遞,但我該怎麼做呢?
任何幫助將不勝感激。
編輯:
一些澄清和代碼:
我的應用程序是用標準asp.net
。在對遺留代碼進行了一些更深入的研究之後,我發現所有認證都是在一些基類中完成的,從所有其他頁面繼承。每次加載頁面時,用戶主體都從HttpContext.Current.Session("...")
獲得。我認爲這不是一個好的解決方案,但我現在需要堅持下去。問題是,WebMethod
由於是static
,因此無法觸發整個頁面的生命週期。我現在通過調用從會話中獲取用戶數據的方法來修復它。
我想得到一些想法如何正確創建,以及基於會話的身份驗證可能導致哪些問題。
PageMethods.SomeMethod(parameter, SuccessDelegate, FailureDelegate);
這就是我現在打電話給WebMethods
的方式。我認爲它傳遞了所有必需的cookies,對嗎?
我設法得到了一些關於這個問題的更多信息,所以我編輯了我的問題來包含這些細節。看來問題不在於Cookie,而在於舊代碼。 – Pako 2012-03-01 14:17:27