从客户端检测到潜在危险的Request.Path值?

时间:2012-10-03 05:11:58

标签: c# asp.net-mvc

我写了sitemap.config。

        <siteMapNode title="Shipping rate" nopResource="Admin.Configuration.Shipping.Rate" controller="Shipping" action="ConfigureProvider?systemName=Shipping.ByWeight"   />           


      </siteMapNode>

这是我想要调用的运输控制器功能。

public ActionResult ConfigureProvider(string systemName)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageShippingSettings))
                return AccessDeniedView();

            var srcm = _shippingService.LoadShippingRateComputationMethodBySystemName(systemName);
            if (srcm == null)
                //No shipping rate computation method found with the specified id
                return RedirectToAction("Providers");

            var model = srcm.ToModel();
            string actionName, controllerName;
            RouteValueDictionary routeValues;
            srcm.GetConfigurationRoute(out actionName, out controllerName, out routeValues);
            model.ConfigurationActionName = actionName;
            model.ConfigurationControllerName = controllerName;
            model.ConfigurationRouteValues = routeValues;
            return View(model);
        }

但错误" A potentially dangerous Request.Path value was detected from the client (?) "

我该如何解决它。

1 个答案:

答案 0 :(得分:1)

您无法通过NOPCommerce中的siteMap.cofig将任何参数传递给操作,因为如果您在 siteMapNode 的Action属性中使用参数编写操作名称,则认为这是操作名称。 因此,如果想要使用参数调用任何操作,则为其创建一个新的Action并从中重定向。

//In Site Map 

    <siteMapNode title="Shipping rate" nopResource="Admin.Configuration.Shipping.Rate" controller="Shipping" action="SomeAction"/> 


//In Shipping Controller 


    public ActionResult SomeAction()
    {
         return RedirectToAction("ConfigureProvider", new { systemName = "Shipping.ByWeight" });
    }


    public ActionResult ConfigureProvider(string systemName)
    {

    }

通过这种方式,您可以召集您的行动。