我正在編寫一個使用Forms Authentication的Asp.net MVC 2應(yīng)用程序,目前我的iPhone應(yīng)用程序在通過Web進行身份驗證/登錄時遇到問題。我們已經(jīng)開發(fā)了一個使用UIWebView控件的簡單iPhone應(yīng)用程序。在此階段,所有應(yīng)用程序要做的就是導(dǎo)航到我們的Asp.Net網(wǎng)站。簡單吧?問題是,用戶無法通過登錄頁面。復(fù)制步驟為:打開iPhone應(yīng)用程序。該應(yīng)用程序?qū)Ш降街黜?。用戶未通過身份驗證,因此將他們重定向到登錄屏幕/頁面用戶輸入正確的用戶名和密碼。點擊提交。在服務(wù)器端,使用FormsAuthentication.GetAuthCookie對用戶進行身份驗證并生成cookie并將其發(fā)送給客戶端。服務(wù)器發(fā)送被重定向以將用戶發(fā)送到正確的主頁。但用戶然后被重定向返回到登錄界面!我已經(jīng)對此進行了一些廣泛的調(diào)試,我知道的是:cookie正在發(fā)送到客戶端,并且客戶端正在存儲cookie。在iPhone調(diào)試器中以及通過使用Javsascript在頁面上顯示cookie數(shù)據(jù)進行了驗證。cookie被發(fā)送回服務(wù)器。在Visual Studio調(diào)試器中對此進行了驗證。它是正確的cookie(與設(shè)置的cookie相同)。盡管auth cookie包含在Request對象中,由于某種原因,屬性User.Identity.IsAuthenticated仍返回false。我已驗證iPhone應(yīng)用程序已設(shè)置為接受Cookie,并且它們在客戶端上。這是一件有趣的事情:如果您在iPhone上打開Safari瀏覽器并直接轉(zhuǎn)到我們的網(wǎng)站,它會很好地工作。它在iPad上也具有相同的行為,因為它不會超出登錄屏幕。在仿真器和設(shè)備上都如此。該網(wǎng)站已經(jīng)通過IE 7-8,Safari(適用于Windows),Blackberry,IEMobile 6.5,Phone 7進行了測試,并且可以正常運行。唯一無法使用的情況是iPhone應(yīng)用程序中的UIWebView。
3 回答

尚方寶劍之說
TA貢獻1788條經(jīng)驗 獲得超4個贊
我們發(fā)現(xiàn)的解決方案是創(chuàng)建一個文件(generic.browser),并包含此xml以告知Web服務(wù)器“ Mozilla”和“默認瀏覽器”設(shè)置均應(yīng)支持cookie。
<browser refID="Mozilla" >
<capabilities>
<capability name="cookies" value="true" />
</capabilities>
</browser>
- 3 回答
- 0 關(guān)注
- 516 瀏覽
添加回答
舉報
0/150
提交
取消