2011-09-30 11 views
16

मुझे वाईआईएफ का उपयोग करते समय एक सत्यापन सत्यापन त्रुटि भी मिल रही है। मैं एसटीएस को सही ढंग से भेजता हूं, लेकिन रास्ते में, मुझे यह सत्यापन त्रुटि मिलती है।क्लाइंट से एक संभावित खतरनाक अनुरोध। फॉर्म वैल्यू का पता चला था (wresult = "<trust: RequestSecuri ...")

मैंने सभी निर्देशों का पालन किया।

<httpRuntime requestValidationMode="2.0" /> 

चेक करें!

[ValidateInput(false)] 

चेक करें!

<pages validateRequest="false" > 

चेक करें!

मैंने एक कस्टम सत्यापनकर्ता की कोशिश की, लेकिन इसे तुरंत नहीं मिला।

त्रुटि ढेर:

[HttpRequestValidationException (0x80004005): A potentially dangerous Request.Form value was detected from the client (wresult="trust:RequestSecuri...").] 
    System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) +11396740 
    System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection) +82 
    System.Web.HttpRequest.get_Form() +212 
    Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.IsSignInResponse(HttpRequest request) +26 
    Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.CanReadSignInResponse(HttpRequest request, Boolean onPage) +145 
    Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args) +108 
    System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +270 

कोई सुझाव?

+0

[इस उत्तर] में वर्णित एक विशिष्ट सत्यापनकर्ता को जोड़ने का एक बेहतर तरीका है (http: // stackoverflow।com/प्रश्न/5443563/संभावित-खतरनाक-अनुरोध फार्म में wsfederationauthenticationmodule-issigninre/5446288 # 5446288)। –

+0

इस से निपटने का एक उचित तरीका वर्णित है [यहां] [1]। [1]: http://stackoverflow.com/questions/5443563/potentially- खतरनाक-request-form-in-wsfederationauthenticationmodule-issigninre/5446288#5446288 –

+0

@ यूजीनियो हाँ, मैंने यही कहा। :-) –

उत्तर

26
<httpRuntime requestValidationMode="2.0"/> 

इस के बाद जोड़ने

<configuration> 
    <system.web> 
     <pages validateRequest="false" /> 
    </system.web> 
</configuration> 

भी mvc3 में एक AllowHtml विशेषता

[AllowHtml] 
public string Property{ get; set; } 

यहाँ कुछ उपयोगी लिंक कर रहे हैं वहाँ

ASP.NET MVC – pages validateRequest=false doesn’t work?

Why is ValidateInput(False) not working?

+0

क्षमा करें, यह ध्यान दें कि मेरे पास पृष्ठ मान्य हैं Request = false। –

+1

यह समस्या उत्पन्न होने पर AllowHtml विशेषता मेरे लिए काम करती है। – kolin

+0

आपका दूसरा लिंक मेरे लिए काम करता है, धन्यवाद – Francisco

0

एमवीसी 3 में (लगभग 2 के बारे में सुनिश्चित नहीं) आप global.asax.cs जैसे वैश्विक फ़िल्टर जोड़ सकते हैं उदा।

public static void RegisterGlobalFilters(GlobalFilterCollection filters) 
{ 
    filters.Add(new ValidateInputAttribute(false)); 
} 

निम्नलिखित के साथ मिलकर उस में सभी डेटा की अनुमति है और इसे सही ढंग से प्रदर्शित करने और सुरक्षित रूप से मुझे लगता है कि होना चाहिए: web.config में

<httpRuntime encoderType="Microsoft.Security.Application.AntiXssEncoder, AntiXssLibrary"/> 

और का उपयोग कर (ध्यान दें कोलन):

<%: Model.Something %> 

या रेजर में:

@Model.Something 

और जावास्क्रिप्ट में कुछ मामलों में:

@Html.Raw(Ajax.JavaScriptStringEncode(Model.Something)) 
2

this answer देखें आप .NET 4.5 जो ASP.NET करने के लिए बनाया एक अद्यतन अनुरोध सत्यापनकर्ता का लाभ लेता चला रहे हैं।

संबंधित मुद्दे

 संबंधित मुद्दे