【发布时间】:2016-01-27 11:05:03
【问题描述】:
我有这条路需要处理:
http://mpdev.website.com/Account/ExternalLogOn?LogonTicket=c3792319c8711a0dd465bbd6f6b31ea913b42db7&PID=1137565&ReturnUrl=/Home/CompReq?EC=151120TXAM
帐户控制器中的 ExternalLogon 操作会根据 LogonTicket 和 PID 之间的检查自动让用户登录。然后它应该重定向到 ReturnUrl。
如何修复 /Home/CompReq 路由来处理 EC 参数以及如何修改 Home Controller 中的 Action?
我的 RouteConfig 中只有一条路线:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
此链接完美运行,但我知道我没有任何参数。
http://mpdev.website.com/Account/ExternalLogOn?LogonTicket=c3792319c8711a0dd465bbd6f6b31ea913b42db7&PID=1137565&ReturnUrl=/Home/MyInfo
Home Controller Action 定义如下:
public ActionResult CompReq(string eventcode)
外部登录定义:
ExternalLogOn(string LogonTicket, int? PID, string User, string EC, String State, string ReturnUrl)
【问题讨论】:
-
当您传递带有“EC”部分的路径时,ExternalLogon 操作的 ReturnUrl 参数包含什么?
-
没有得到你想要的
-
您的名为“ExternalLogon”的操作可能有 3 个输入参数; LogonTicket、PID 和 ReturnUrl 对吗?当您使用有问题的路径调用 ReturnUrl 时,它包含什么?
-
它包含应该存在的内容
/Home/CompReq?EC=151120TXAM,但随后出现异常:A potentially dangerous Request.Path value was detected from the client (?). -
为您提供两种解决方案,您可以试试这个stackoverflow.com/questions/14475913/…,也可以将returnUrl 值存储到您的LogonTicket 旁边的数据库中
标签: c# asp.net-mvc