HttpContext,用于.Net 4.5服务器的Context.Request.Unvalidated的替代方法

Jso*_*ham 5 .net c#

我在我的项目中有一个方法,如下所示,它接受一个HttpContext对象并返回一个string.

//returns the xml document as string
private static string GetXmlReceiptFromContext(HttpContext context)
{
    context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
    context.Response.Cache.SetNoStore();
    context.Response.Cache.SetExpires(DateTime.MinValue);        
    return context.Request.Unvalidated.Form.Get("status");
}
Run Code Online (Sandbox Code Playgroud)

这样的结果最终会传递到一个非常重要的方法,需要这个字符串.

它似乎Context.Request.Unvalidated只能从.Net 4.5获得.对于没有.Net 4.5的服务器,我需要使用这种方法的替代方法,并且将使用这个程序集.

任何人都可以建议一种替代方法来访问和返回status参数,该参数的值将是来自上下文的XML Document而不使用Context.Request.Unvalidated?

编辑

这不适用于webform或MVC项目,我们开发了一个类库,我们理想地想要包含程序集中所有与支付相关的功能,即单一责任,我们的前端应用程序将使用它不需要知道事情的付款方面.

mar*_*nis 5

我不知道您使用的是MVC还是Web窗体/网页,但有几种解决方案可供您使用.有关禁用请求验证的详细信息,请查看此MSDN页面.

Web窗体:添加<@ Page validateRequest="false" %>到页面顶部以禁用单个页面的验证(应用程序的更多页面/部分的其他选项位于MSDN页面中).

MVC:将属性添加[ValidateInput(false)]到操作的顶部或将[AllowHtml]属性添加到要绑定的模型中的属性.

  • @martennis感谢您的回答,这确实有用,但是我们需要这个级别更低,因为我们必须在类库中包含它,并且不希望必须在使用我们的库的每个Web应用程序中实现它.请参阅更新问题 (2认同)