问题:
Url.IsLocalUrl(returnUrl) 一直为false
解决方法:
url.islocalurl可以防止跳转攻击
页面之间传值,post过来一个参数,例如http://localhost:3221/Account/LogOn?returnUrl=/HealthDisplay/HistoryTrace
记住 这种判断 是针对于mvc route 例如这种方式/HealthDisplay/HistoryTrace 若为http://baidu.com这无法判断
故有这种判断方式 if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
&& !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))更为复杂。
时间: 2024-10-14 22:49:28