मुझे एएसपी.NET एमवीसी में एंटीफोर्गेरी टोकन के साथ समस्याएं आ रही हैं। अगर मैं अपने वेब सर्वर पर एक आईस्रेसेट करता हूं और उपयोगकर्ता अपने सत्र के साथ जारी रहता है तो उन्हें लॉगिन पेज पर बाउंस किया जाता है। भयानक नहीं है लेकिन फिर एंटीफोर्गेरी टोकन उड़ाता है और फिर से जाने का एकमात्र तरीका ब्राउज़र पर कुकी को उड़ाना है।मैं अपने एएसपी.NET एमवीसी ऐप में iisreset के बाद होने वाले एंटीफ़ोर्गेरी टोकन अपवाद को कैसे हल करूं?
संस्करण 1 के बीटा संस्करण के साथ यह मेरे लिए कुकी पढ़ने के दौरान गलत हो जाता था, इसलिए मैं सत्यापन टोकन मांगने से पहले इसे साफ़ करना चाहता था लेकिन इसे रिलीज़ होने पर तय किया गया था।
अब के लिए मुझे लगता है कि मैं बीटा समस्या को ठीक करने वाले मेरे कोड पर वापस रोल करूंगा लेकिन मैं मदद नहीं कर सकता लेकिन लगता है कि मुझे कुछ याद आ रहा है। क्या कोई आसान समाधान है, क्या मुझे बस अपना सहायक छोड़ना चाहिए और खरोंच से नया बनाना चाहिए? मुझे यह महसूस हो रहा है कि बहुत सी समस्या यह तथ्य है कि यह पुरानी एएसपी.Net पाइपलाइन में इतनी गहराई से बंधी हुई है और इसे ऐसा करने में मदद करने की कोशिश कर रही है जिसे वास्तव में करने के लिए तैयार नहीं किया गया था।
मुझे एएसपी.NET एमवीसी 2 आरसी के लिए स्रोत कोड में एक नज़र डाली गई थी और ऐसा लगता है कि कोड बहुत बदल गया है, जबकि मैंने कोशिश नहीं की है, मुझे नहीं लगता कि कोई जवाब है क्या आप वहां मौजूद हैं।
अपवाद के स्टैक ट्रेस का प्रासंगिक हिस्सा यहां दिया गया है।
संपादित करें: मुझे अभी एहसास हुआ कि मैंने उल्लेख नहीं किया है कि यह केवल GET अनुरोध पर टोकन डालने का प्रयास कर रहा है। यह वह सत्यापन नहीं है जो तब होता है जब आप पोस्ट को बंद कर देते हैं।
System.Web.Mvc.HttpAntiForgeryException: A required anti-forgery token was not
supplied or was invalid.
---> System.Web.HttpException: Validation of viewstate MAC failed. If this
application is hosted by a Web Farm or cluster, ensure that <machineKey>
configuration specifies the same validationKey and validation algorithm.
AutoGenerate cannot be used in a cluster.
---> System.Web.UI.ViewStateException: Invalid viewstate.
Client IP: 127.0.0.1
Port: 4991
User-Agent: scrubbed
ViewState: scrubbed
Referer: blah
Path: /oursite/Account/Login
---> System.Security.Cryptography.CryptographicException: Padding is invalid and
cannot be removed.
at System.Security.Cryptography.RijndaelManagedTransform.DecryptData(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount, Byte[]& outputBuffer, Int32 outputOffset, PaddingMode paddingMode, Boolean fLast)
at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
at System.Security.Cryptography.CryptoStream.FlushFinalBlock()
at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, IVType ivType, Boolean useValidationSymAlgo)
at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
--- End of inner exception stack trace ---
--- End of inner exception stack trace ---
at System.Web.UI.ViewStateException.ThrowError(Exception inner, String persistedState, String errorPageMessage, Boolean macValidationError)
at System.Web.UI.ViewStateException.ThrowMacValidationError(Exception inner, String persistedState)
at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)
at System.Web.UI.ObjectStateFormatter.System.Web.UI.IStateFormatter.Deserialize(String serializedState)
at System.Web.Mvc.AntiForgeryDataSerializer.Deserialize(String serializedToken)
--- End of inner exception stack trace ---
at System.Web.Mvc.AntiForgeryDataSerializer.Deserialize(String serializedToken)
at System.Web.Mvc.HtmlHelper.GetAntiForgeryTokenAndSetCookie(String salt, String domain, String path)
at System.Web.Mvc.HtmlHelper.AntiForgeryToken(String salt, String domain, String path)
देखें में भी जोड़ सकते हैं: http://stackoverflow.com/quest आयनों/1360078/एएसपी निवल MVC-मान्यता के- viewstate-मैक-विफल रहा है – Shog9