टोकन को हटाते समय एक अपवाद को फेंक दिया गया था। एंटिफॉर्गी टोकन को .Net कोर 64 एप्लिकेशन में डिक्रिप्ट नहीं किया जा सकता था।
मुझे अपने लॉग में त्रुटि मिल रही है। मैंने अपना अधिकांश दिन समाधान खोजने में बिताया लेकिन वह नहीं मिला जो मेरी आवश्यकता को पूरा करता है।
यहाँ लॉग त्रुटि है
गंभीरता = [ERROR], ipaddress = xxxx, subprocess = Microsoft.AspNetCore.Antiforgery.Internal.DefaultAntiforgery, विवरण = टोकन को डीरिशियल करते समय एक अपवाद फेंका गया। Microsoft.AspNetCore.Antiforgery। ---> System.Security.Cryptography.CryptographicException: कुंजी {xxxxxxxxxx} कुंजी रिंग में नहीं मिली। Microsoft.AspNetCore.DataProtection.KeyManagement.KeyRingBasedDataProtector.UnprotectCore (बाइट [] रक्षितडॉट, बूलियन allowOperationsOnRevitKey, UnprotectStatus & Status) Microsoft.AspNetCore.DataProtection.ro पर क्लिक करें। ) Microsoft.AspNetCore.DataProtection.KeyManagement पर।KeyRingBasedDataProtector.Unprotect (बाइट [] संरक्षितडाटा) पर Microsoft.AspNetCore.Antiforgery.Internal.DefaultAntiforgeryTokenSerializer.Dererialize (String serializedToken) पर Microsoft.AspNetCore.Antiforgery.Internet.com/Info/Internet.com/free/De.Info DefaultAntiforgery.GetCookieTokenDoesNotThrow (HttpContext httpContext)
"Certificates": {
"StoreName": "My",
"StoreLocation": "LocalMachine"
"SerialNumber": "xxxxxxxxxxxx"
},
private X509Certificate2 LCertificate()
{
var storeName = Configuration["Certificates:StoreName"];
var storeLocation = Configuration["Certificates:StoreLocation"];
string serialNumber = Configuration["Certificates: SerialNumber"];
using(X509Store store = new X509Store(storeName,storeLocation))
{
var certificates = store.Certificates
.Find(X509FindType.FindBySerialNumber,
serialNumber,
acceptValidCertOnly);
return certificates[0];
}
}
public void ConfigureServices(IServiceCollection services)
{
services.AddIdentityServer
.AddSigningCredential(new X509Certificate2(LCertificate()))
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginModel model)
{
जवाब
अगर
- आपका ऐप कई सर्वरों पर होस्ट किया गया है
- साझा डेटा सुरक्षा को कॉन्फ़िगर नहीं किया है
- आप चिपचिपा सत्र का उपयोग नहीं कर रहे हैं
यह तब होगा जब उपयोगकर्ता सर्वर ए से फॉर्म के साथ पृष्ठ का अनुरोध करता है, और बाद में सर्वर बी के लिए फॉर्म जमा करता है।
यदि यह एकल IIS सर्वर पर भी हो सकता है
- उपयोगकर्ता प्रपत्र के साथ पृष्ठ का अनुरोध करता है
- आप सर्वर को पुनरारंभ करें
- उपयोगकर्ता प्रपत्र सबमिट करता है
इसका कारण यह है कि पुनरारंभ करने से मेमोरी में लोड करने के लिए एक नया कीरिंग होता है, और प्रपत्र के अंदर एंटीफॉगररी कुंजी अब मान्य नहीं होती है।
बाद के मामले को ऐप पूल में "लोड उपयोगकर्ता प्रोफाइल" की जांच करके IIS में तय किया जा सकता है।
और जानकारी: https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/configuration/overview?view=aspnetcore-3.1