/ / एमवीसी विरोधी जालसाजी के टोकन को मान्य करने के बावजूद भले ही कोई [ValidateAntiForgeryToken] - asp.net, asp.net-mvc-2, कुकीज़

एमवीसी एंटी जालसाजी टोकन मान्य है भले ही कोई [ValidateAntiForgeryToken] - asp.net, asp.net-mvc-2, कुकीज़

मेरे पास व्यूस्टेट मैक की खतरनाक मान्यता हैसमय-समय पर समस्या का सामना करना पड़ा। मैं एक वेब फ़ार्म में अपना एप्लिकेशन चलाता हूं और सभी वेब सर्वर पर समान मूल्य पर एप्लिकेशन की मशीन कुंजी सेट करता हूं। मैं कुछ प्रयोग कर रहा हूं और अब मेरे पास विरोधी जालसाजी तंत्र के बारे में दो प्रश्न हैं:

1। मुझे यह त्रुटि प्रतीत हो रही है, भले ही मैं [ValidateAntiForgeryToken] विशेषता के साथ कोई कार्रवाई नहीं कह रहा हूँ (समस्या दृश्य में टोकन प्रदान करते समय प्रकट होती है)। ऐसा क्यों हो रहा है? जब विशेषता मौजूद है। यदि __RequestVerificationToken कुकी हटा दी जाती है, तो समस्या गायब हो जाती है।

2. Isn "t __RequestVerificationToken कुकी को एक सत्र कुकी माना जाता है और इस प्रकार यह सत्र समाप्त होने के बाद अमान्य हो जाती है? ऐसा प्रतीत नहीं होता है?"

स्टैक ट्रेस:

एक आवश्यक एंटी-फर्जी टोकन की आपूर्ति नहीं की गई थी या अमान्य थी

System.Web.Mvc.AntiForgeryDataSerializer.Deserialize (स्ट्रिंग पर serializedToken)
पर System.Web.Mvc.HtmlHelper.et स्ट्रिंग डोमेन, स्ट्रिंग पथ)
पर System.Web.Mvc.HtmlHelper.AntiForgeryToken (स्ट्रिंग नमक, स्ट्रिंग डोमेन, स्ट्रिंग पथ)
System.Web.Mvc.HtmlHelper.AntiForgeryToken () पर
पर ASP.views_customer__customerlogin_ascx .__ Render__control1 (HtmlTextWriter __w, कंट्रोल पैरामीटर
System.Web.UI.Control.RenderChildrenInternal (HtmlTextWriter लेखक, बच्चे के बच्चे)
पर System.Web.UI.Control.RenderChildrenInternal (HtmlTextWriter लेखक, बच्चे के बच्चे)
पर System.Web.UI.Page.Render (HtmlTextWriter लेखक)
पर System.Web.Mvc.ViewPage.Render (HtmlTextWriter लेखक)
पर System.Web.UI.Page.ProcessRequestMain (बूलियन शामिल करें
System.Web.UI.Page.ProcessRequest (बुलियन पर शामिल करें
System.Web.UI.Page.ProcessRequest () पर System.Web.UI.Page.ProcessRequest (HttpContext संदर्भ)
पर System.Web.Mvc.ViewUserControl.ViewUserControlContainerPage.ProcessRequest (HttpContext संदर्भ)
System.Web.Mvc.ViewPage.RenderView (ViewContext) पर viewContext)
पर System.Web.Mvc.ViewUserControl.RenderViewAndRestoreContentType (ViewPage कंटेनरपज, व्यूकोटेक्स्ट व्यू कॉंटेक्स)
पर System.Web.Mvc.HtmlHelper.RenderPartialInternal (स्ट्रिंग आंशिक दृश्यनाम, दृश्य डेटा दृश्यता, ऑब्जेक्ट मॉडल, टेक्स्टविटर लेखक, ViewEngineCollection viewEngineCollection)
पर System.Web.Mvc.Html.RenderPartialExtensions।RenderPartial (HtmlHelper htmlHelper, स्ट्रिंग आंशिक दृश्य नाम, ऑब्जेक्ट मॉडल) पर ASP.views_cart_index_aspx .__ Rendercontainer_main (HtmlTextWriter __w, नियंत्रण पैरामीटरकॉनटेनर)
पर System.Web.UI.Control।RenderChildrenInternal (HtmlTextWriter लेखक, ICollection बच्चों) पर ASP.views_saring_site_master___ Render__control1 (HtmlTextWriter __w, नियंत्रण पैरामीटरकंटेनर) पर System.Web.UI.Control.RenderChildrenInternal (HtmlTextWriter लेखक, बच्चे के बच्चे)
पर System.Web.UI.Control.RenderChildrenInternal (HtmlTextWriter लेखक, ICollection बच्चे) System.Web.UI.Page.Render (HtmlTextWriter पर लेखक)
System.Web.Mvc.ViewPage पर।रेंडर (HtmlTextWriter लेखक) System.Web.UI.Page.ProcessRequestMain (बुलियन पर शामिल करें System.Web.UI.Page.ProcessRequest (बुलियन पर शामिल करें System.Web.UI.Page.ProcessRequest () पर System.Web.UI.Page.ProcessRequest (HttpContext संदर्भ)
पर System.Web.Mvc.ViewPage.ProcessRequest (HttpContext संदर्भ) पर ASP.views_cart_index_aspx.ProcessRequest (HttpContext संदर्भ)
पर System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper। <> C__DisplayClass1.b__0 () पर System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper। <> C__DisplayClass4.b__3 ()
पर System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap [TResult] (Func`1 समारोह)
पर System.Web.Mvc.HttpHandlerUtil.ServerExecuteHttpHandlerWrapper.Wrap (कार्रवाई कार्रवाई)
पर System.Web.HttpServerUtility।ExecuteInternal (IHttpHandler हैंडलर, TextWriter लेखक, बूलियन परिरक्षण, बूलियन सेटप्रेप पेजेज, VirtualPath पथ, VirtualPath filePath, स्ट्रिंग फ़िज़पैथ, अपवाद त्रुटि, स्ट्रिंग queryStringOverride)

भीतरी अपवाद

Viewstate मैक की मान्यता विफल रही। यदि इस एप्लिकेशन को ए वेब फ़ार्म या क्लस्टर, सुनिश्चित करें कि कॉन्फ़िगरेशन निर्दिष्ट करता है वही सत्यापनकरण और सत्यापन एल्गोरिथ्म। AutoGenerate नहीं कर सकता एक क्लस्टर में इस्तेमाल किया जा सकता है।

उत्तर:

जवाब के लिए 2 № 1
  1. केवल कार्यों के साथ सजाया [ValidateAntiForgeryToken] विशेषता टोकन को सत्यापित करती है और इस अपवाद को बढ़ा सकती है।
  2. __RequestVerificationToken कुकी का किसी भी सत्र से कोई संबंध नहीं है और न ही कभी बाहर। सत्यापन में छिपे हुए क्षेत्र से POSTed मूल्य के साथ कुकी मूल्य की समानता की जांच करना शामिल है।