Asp.Net iPhone UİWebView kullanırken Form kimlik Doğrulaması
Form kimlik Doğrulaması kullanan Asp.net MVC 2 bir uygulama yazıyorum ve şu anda web üzerinden giriş/kimlik doğrulama konusunda bizim iPhone uygulaması ile ilgili bir sorun yaşıyorum. Bu UİWebView kontrol kullanan basit bir iPhone uygulaması geliştirdik. Bu aşamada, uygulama yapar ASP.NET bizim web sitesine gidin. Basit, değil mi? Sorun kullanıcı giriş sayfasına geçmiş olsun. Yeniden oluşturma adımları:
- İPhone uygulaması açın.
- App giriş sayfasına gider.
- kullanıcının kimliği, giriş ekranı/sayfasına yönlendirilir
- Kullanıcı doğru kullanıcı adı ve parola girer. tıklama gönderin.
- sunucu tarafında, kullanıcı kimliği ve bir çerez oluşturulur ve istemci için FormsAuthentication kullanılarak gönderilir.GetAuthCookie.
- Sunucu doğru giriş sayfasına kullanıcı göndermek için yönlendirme vardır gönderir.
Ama daha sonra kullanıcı yönlendirilirGERİoturum açma ekranı!
Bu konuda kapsamlı bir hata ayıklama yaptım ve bildiğim tek şey:
Tanımlama bilgisi istemciye gönderilen ve istemci cookie. Javsascript sayfasında cookie verileri ile kullanmak için iPhone hata ayıklayıcı, bu da doğrulandı. Çerez sunucuya gönderilen. Visual Studio hata ayıklayıcı, bu doğrulanmadı. Doğru bir çerez ayarlanmış aynısı). Özellik Kullanıcı.Kimlik.Auth cookie İsteğinde bulunan döndürür rağmen nedense yanlış ısauthenticated, nesne. İPhone uygulaması çerezleri kabul edecek şekilde ayarlanmış doğrulanmış ve istemci vardır.
Burada komik olan şey şu ki: sen iyi iPhone Safari tarayıcısını açın ve sitemize doğrudan. eğer çalışır
İPad aynı davranışı giriş ekranı geçmek değil o da var. Bu cihazlar üzerinde öykünücüsünü ve repros.
Bu aynı web sitesi 7-8, Safari (Windows için), Blackberry, 6.5, Phone 7 ve çalışır İEMobile bulmak IE ile test edilmiştir. İşe yaramaz tek durum iPhone uygulaması UİWebView.
CEVAP
Tam olarak aynı sorun, ama başka bir cihazla (NokiaN8) vardı, ve aynı zamanda Kullanıcı-Aracı geri problem takip.
IIS düzenli ifadeler-Kullanıcı Aracısı dizesi karşı eşleştirmek için kullanır. Sorunun kökü belirli bir aygıt için herhangi bir eşleşen düzenli ifadeler yoktu ve Varsayılan özellikler kullanıldığı maçın en düşük seviyelerden biri olarak sona erdi. Varsayılan özellikler tarayıcı çerezleri destek olmadığını söyledi.
Çözüm:
- Web projesi
App_Browsers
(sağ projeyi seçin:Add > Add ASP.NET Folder > App_Browsers
) adında bir klasör ekleyin. - Bu klasörün içinde bir dosya (sağ tıklatın, seçin:
Add > New Item
) ekleyin. Dosya adı herhangi bir şey olabilir, ama.browser
bitiş olmalı. - İyi eşleşen bir ifade ve doğru yetenekleri (veya
Default
deÄŸiÅŸiklik ekleyin) ekleyin.
İki örnek:
<browsers>
<browser id="NokiaN8" parentID="Mozilla">
<identification>
<userAgent match="NokiaN8" />
</identification>
<capabilities>
<capability name="browser" value="NokiaN8" />
<capability name="cookies" value="true" />
</capabilities>
</browser>
</browsers>
Veya varsayılan değiştirin:
<browsers>
<browser refID="Default">
<capabilities>
<capability name="cookies" value="true" />
</capabilities>
</browser>
</browsers>
Daha fazla bilgi: Browser Definition File Schema
Form tabanlı kimlik doğrulaması için k...
Form kimlik Doğrulaması zaman Aşımı vs...
Form kimlik doğrulaması zaman aşımı vs...
iPhone uygulaması imza: imza geçerli B...
Ayrıca güvenli bir web hizmetine erişi...