2012-02-15 28 views
6

Ben IIS 6.0 ile Windows Server 2003 üzerinde çalışan birçok web uygulamaları var arasındaki çalışmıyor.Form tabanlı kimlik .NET 2.0 ve .NET 4.0 uygulama

uygulamaları Asp.net 2.0 altında çalışmaktadır.

Son zamanlarda ben merkezli doğa asp.net 4 var olan bir MVC 3 Web uygulaması yüklediniz. Bu yeni uygulamada formlar bileti kabul edilmez.

Bu bağlantıyı kullanarak oluşturulmuş olan farklı asp.net versiyonlarının machine.config dosyalarında aynı machinekey ayarlara sahip: http://aspnetresources.com/tools/machineKey

giriş web uygulaması yapılandırma şu şekildedir:

<authentication mode="Forms"> 
    <forms name=".WEBAUTH" 
     loginUrl="http://path2theloginapp/login.aspx" 
     protection="None" 
     slidingExpiration="true" 
     enableCrossAppRedirects="false"  
     timeout="43200"  
     path="/" /> 
    </authentication> 

    <authorization> 
    <deny users="?" /> 
    <allow users="*" /> 
    </authorization> 

giriş çalışır, ancak mVC uygulaması daima r:

Ve mvc app buna göre yapılandırması

<authentication mode="Forms"> 
    <forms name=".WEBAUTH" 
     loginUrl="login.aspx" 
     protection="None" 
     slidingExpiration="true" 
     enableCrossAppRedirects="false"  
     timeout="43200"  
     path="/" /> 
    </authentication> 
olduğunu giriş sayfasına geri döner.

Şimdi ben 4.0 asp.net için IIS yapılandırmasında giriş web uygulaması asp.net Sürüm değiştirirseniz, işe yarıyor. Ama sonra asp.net 2 üzerinde çalışan tüm diğer uygulamalar artık çalışmıyor.

herkes benzer bir durumda kimlik formsbased çözüldü mü?

cevap

5

Ben uzun bir yol gitmek zorunda kaldı ve bir açıldı Microsoft ile destek durumu. O döndü

, Microsoft Güvenlik Bülteni MS11-100 alakalı güvenlik güncellemeleri eksikti:

http://technet.microsoft.com/en-us/security/bulletin/ms11-100.
İşletim sisteminizi seçin ve güncellemeleri .Net 2.0 ve 4.0 için yükleyin.

Bu, ilgili web uygulamalarının yeniden yapılandırılması olmadan sabit form tabanlı kimlik doğrulamasını güncelleştirir.

+0

Çok teşekkür ederim! –

2

O biri breaking changes 4,0 ASP.NET'te:

Standart Hashing Algoritma Şimdi mi HMACSHA256

ASP.NET şifreleme ve karma algoritmalar hem böyle form kimlik doğrulaması çerez olarak güvenli verileri amacıyla kullandığı ve durumu görüntüle. Varsayılan olarak, ASP.NET 4 şimdi kurabiye ve görünümü durumuna karma işlemleri için HMACSHA256 algoritması kullanır. Daha eski ASP.NET sürümleri eski HMACSHA1 algoritmasını kullandı. Form kimlik doğrulama tanımlama bilgileri gibi verilerin, .NET Framework sürümlerinde çalışması gereken karma ASP.NET 2.0/ASP.NET 4 ortamlarını çalıştırıyorsanız, uygulamalarınız etkilenebilir. Eski HMACSHA1 algoritmasını kullanmak için bir ASP.NET 4 Web uygulaması yapılandırmak için Web.config dosyasında aşağıdaki ayarı ekleyin:

<machineKey validation="SHA1" />

+0

Doğrulama, machine.config dosyasında önerildiği şekilde ayarlanmıştır.Web uygulaması ve uygulama havuzunun asp.net 2.0 modu altında çalışmasına izin verirseniz işe yarayabilir mi? – ms007

+0

@ MS007, hayır, CLR 2.0 altında bir ASP.NET MVC 3 uygulama çalıştırılamıyor. .NET 4.0 gerektirir. Diğer yandan, eski uygulamanızı .NET 4.0 altında çalıştırabilirsiniz. –