“Error occurred during a cryptographic operation.” Hatası ve Çözümü

 Asp.Net Mvc kullanarak bir web uygulaması geliştirdiniz. Daha sonra MVC desteği olan bir hosting satın alıp deployment işlemi gerçekleştirdiniz. Local IIS web sunucunuzda uygulamanızda hiç bir problemle karşılaşmıyorsunuz. Tüm ayarlamaları yaptıktan sonra uygulamanız sorunsuz bir şekilde çalışmaya başlar. Fakat belli bir süre sonra uygulamanıza erişmek istediğinizde Error occurred during a cryptographic operation.  şeklinde hata almaya başlayabilirsiniz. Bunun nedeni şifre çözme işlemlerini yapmak için kullanılan makina anahtarının eksik veya eski olmasıdır.Sistem Cookie de tutulan makina anahtarı ile şifre çözme işlemini gerçekleştirmeye çalışır.Bu hatanın çözümü için iki yol vardır. Birincisi, web.config dosyanızda statik makina anahtarı tutarak bu problemi çözebilirsiniz. Eğer sunucu kiraladıysanız veya kendi sunucunuzda host ediyorsanız IIS yöneticisinden doğrulama anahtarı ve şifre çözme anahtarını üretebilirsiniz. Sharing hosting ise hosting aldığınız firmadan talep edebilirsiniz. Ürettiğiniz anahtarları aşağıdaki şekilde web.config dosyanıza eklemeniz yeterlidir.

 

<system.web>
<machineKey validationKey="Doğrulama Anahtarınız" decryptionKey="Şifre Çözme Anahtarınız" validation="SHA1"decryption="AES"/>
<authentication mode="None" />
<compilation debug="true" targetFramework="4.5.2" />
httpRuntime targetFramework="4.5.2" />
<httpModules></httpModules>
<customErrors mode="Off"></customErrors>
</system.web>

 

 

Bu hatanın diğer çözümü ise hata yakalama ile çözebilirsiniz. Hata aldığınız kod bölümünde hata yakalayıp aşağıdaki kodu hata durumunda kullanabilirsiniz.

 catch (Exception){

var error = Server.GetLastError();

var cryptoEx = error as CryptographicException;

if (cryptoEx != null){

FormsAuthentication.SignOut();

Server.ClearError();

}}

 

guvenmur avatarı