আমার একটি ফর্ম রয়েছে যেখানে আমি কিকিটর ব্যবহার করি। এই ফর্মটি Asp.Net 2.0 এবং 3.5 এ কাজ করেছে তবে এখন এটি Asp.Net 4+ এ কাজ করে না। আমার কাছে ValidateRequest = "মিথ্যা" নির্দেশনা রয়েছে। কোনও পরামর্শ?
আমার একটি ফর্ম রয়েছে যেখানে আমি কিকিটর ব্যবহার করি। এই ফর্মটি Asp.Net 2.0 এবং 3.5 এ কাজ করেছে তবে এখন এটি Asp.Net 4+ এ কাজ করে না। আমার কাছে ValidateRequest = "মিথ্যা" নির্দেশনা রয়েছে। কোনও পরামর্শ?
উত্তর:
ত্রুটির পৃষ্ঠায় সমাধান পাওয়া গেছে। কেবলমাত্র অনুরোধভালিডেশন মোড = "2.0" যুক্ত করার দরকার
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
এমএসডিএন তথ্য: এইচটিপিআরটাইমসেকশন
এক পৃষ্ঠার জন্য বৈধতা ২.০ এ ফিরে যাওয়ার উপায় আছে। আপনার ওয়েবকনফাইগে কেবল নীচের কোডটি যুক্ত করুন:
<configuration>
<location path="XX/YY">
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
</location>
...
the rest of your configuration
...
</configuration>
আমি জানি এটি একটি পুরানো প্রশ্ন, তবে আপনি যদি এমভিসি 3 এ এই সমস্যার মুখোমুখি হন তবে আপনি আপনার ActionMethod
সাথে [ValidateInput(false)]
এটি সাজাইয়া রাখতে পারেন এবং কেবলমাত্র একটির জন্য অনুরোধের বৈধতা স্যুইচ অফ করতে পারেন ActionMethod
যা সহজ is এবং আপনাকে web.config
ফাইলটিতে কোনও পরিবর্তন করার দরকার নেই , সুতরাং আপনি অন্য কোথাও। নেট 4 অনুরোধের বৈধতা ব্যবহার করতে পারেন।
যেমন
[ValidateInput(false)]
public ActionMethod Edit(int id, string value)
{
// Do your own checking of value since it could contain XSS stuff!
return View();
}
এটি বৈধতা মোড পরিবর্তন না করেই কাজ করে।
আপনাকে এ System.Web.Helpers.Validation.Unvalidated
থেকে কোনও সহায়ক ব্যবহার করতে হবে System.Web.WebPages.dll
। এটি এমন কোনও UnvalidatedRequestValues
বস্তু ফেরত যাচ্ছে যা ফর্মটি এবং কোয়েরিস্ট্রিংকে বৈধতা ছাড়াই অ্যাক্সেস করতে দেয়।
উদাহরণ স্বরূপ,
var queryValue = Server.UrlDecode(Request.Unvalidated("MyQueryKey"));
এমভিসি 3 এবং। নেট 4 এর জন্য আমার পক্ষে কাজ করে।
নোট করুন যে অন্য পদ্ধতিটি 4.0 বৈধতা আচরণের সাথে রাখা, তবে আপনার নিজের শ্রেণীর সংজ্ঞা দেওয়া যা থেকে প্রাপ্ত RequestValidator
এবং সেট করা হয়েছে:
<httpRuntime requestValidationType="YourNamespace.YourValidator" />
(কোথায় YourNamespace.YourValidator
ভাল, আপনি অনুমান করা উচিত ...)
এইভাবে আপনি 4.0 এর আচরণের সুবিধাগুলি রাখেন (বিশেষত, বৈধকরণটি প্রক্রিয়াজাতকরণের আগে হয়) এবং পাশাপাশি আপনাকে যে অনুরোধগুলি দিয়ে যেতে হবে তাও অনুমতি দেয়।