首页 > 代码库 > Url.IsLocalUrl

Url.IsLocalUrl

问题:

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("/\\"))更为复杂。

Url.IsLocalUrl