我最近检测到,如果它在参数中检测到非ASCII字符,则该UrlHelper.IsLocalUrl方法始终返回.falseurl
例:
var isLocal = UrlHelper.IsLocalUrl("????????"); //false
Run Code Online (Sandbox Code Playgroud)
这是一个错误,还是"按设计"?
Séb*_*SFT 16
最新的可用实现是检查这些条件:
"/"后面没有"/"或"\""~"然后是"/"因此,传递给此方法的所有URL必须以"/"或开头"~/".
此外,如果您想知道,它不会考虑当前主机并检查http例如方案.
更新:
以下是http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/600963a4df15#src/System.Web.WebPages/RequestExtensions.cs使用的实现链接UrlHelper.IsLocalUrl