2014-04-07 16 views
6

OWIN kullanımı için oluşturulan başlangıç ​​yapılandırmasıyla bir ASP.NET MVC5 uygulamasına sahibim.OWIN kimlik doğrulama çerezini ertesi gün reddediyor

Kullanıcı benim uygulamada oturum açar, tarayıcıyı açık tutar ancak bir sonraki gün erişmeye çalışırsa, uygulama kullanıcıyı giriş sayfasına yönlendirir.

Bu sorunu geliştirici makinemde yeniden oluşturamıyorum, yalnızca geçerli paylaşılan barındırma sağlayıcımda gerçekleşir. Aslında önceki sağlayıcımda doğru şekilde çalıştı.

Uygulama havuzu bir süre sonra yeniden başlatılıyor, ancak deneyimlerime göre, el ile bir geri dönüştürme işlemi yaparsam, belirteçleri geçersiz kılmaz (bildiğim kadarıyla beklenen davranış olmalıdır).

açıkça Kayan süre sonu ve çerez geçerliliğini artan ayarlama çalıştı, ama hiçbir etkisi:

// Enable the application to use a cookie to store information for the signed in user 
app.UseCookieAuthentication(new CookieAuthenticationOptions 
{ 
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, 
    ExpireTimeSpan = TimeSpan.FromDays(365*20), 
    SlidingExpiration = true, 
    LoginPath = new PathString("/Account/Login") 
}); 
// Use a cookie to temporarily store information about a user logging in with a third party login provider 
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); 

Ben .NET Framework 4.5 kullanıyorum. Tüm NuGet paketlerimi en son sürümüne güncellemeyi denedim, ancak sorunu çözmedi.

Gönderilen çerezlerin son kullanma zamanını kontrol ettim ve doğru olduklarından sorun olmamalı. Çeşitli tarayıcılarda olur.

+0

sağlayıcınız, uygulamanızın açık olduğu işletim sistemini dinamik olarak değiştiriyor mu? eğer öyleyse, makine anahtarı değişecek ve bilet geçersiz olacaktır. Makine anahtarını web.config sayfanızda ayarlayın ve durum buysa tekrar deneyin. – tugberk

+0

Barındırma sağlayıcım her zaman aynı makinenin uygulamanıza hizmet edeceğini belirtir. [Http://msdn.microsoft.com/en-us/library/ff649308.aspx](http://msdn.microsoft.com/en-us/library/ff649308.aspx] 'a göre önceden tanımlanmış bir makine ayarı yapmayı denedim. , Tamam olduğundan emin olmak için önümüzdeki birkaç gün içinde test edeceğim. Cevaplar için teşekkürler! – nzsb

cevap

8

Bu tanımlama bilgileri ASP.NET'ten <machineKey> ile korunmaktadır. Sağlayıcınızın uygulama alanı geri dönüşümünü tetiklemek için bir şeyler yaptığını veya web anahtarında olduğunuza göre, makine anahtarı tutarlı değildir. Web.config dosyanıza <machineKey> ayarlamayı deneyin.

İlgili konular