sitecore错误 - 仅允许本地URL

时间:2016-06-03 07:38:23

标签: sitecore sitecore7.2

我不得不导航到kickuser.aspx以踢出用户。在我选择了想要踢出的用户之后,我收到了以下错误。

enter image description here

此时的网页网址为:

http://[Websiteroot]/sitecore/shell/Applications/Login/Users/Kick.aspx?url=http%3a%2f%2f[Websiteroot]%2fsitecore%2fshell%2fApplications%2fLogin%2fUsers%2fUsers.aspx%3fsu%3d%252Fsitecore%252Fshell%252Fdefault.aspx%253Fsc_lang%253Den%26inv%3d1

查询字符串未解码 - 不确定是否是原因。

此外,无论我登录的用户是什么,我都会收到此错误。我以前从未遇到过这个。

2 个答案:

答案 0 :(得分:1)

Reflector显示Kick.aspx有下一个代码:

string queryString = WebUtil.GetQueryString("url");
if (WebUtil.IsExternalUrl(queryString))
{
    throw new SecurityException("Only local URLs are allowed.");
}
base.Response.Redirect(queryString);

WebUtil.IsExternalUrl检查你的url get参数中是否存在“://”(实际上,无论是否编码都无关紧要。“://”和“%3a%2f%2f”具有相同的功能行为)

问题是你以某种方式被转移到页面Kick.aspx? url = http:// ... 您可以尝试删除“url” GET参数(或删除http://[Websiteroot]以使路径本地化):

http://[Websiteroot]/sitecore/shell/Applications/Login/Users/Kick.aspx

然后你应该能够踢用户。

答案 1 :(得分:0)

看起来像个错误。你得到的例外确实是因为查询参数" url"。 Sitecore尝试重定向到此参数的任何值,并且在重定向之前不会尝试解码它。

this.Response.Redirect(WebUtil.GetQueryString("url"));

然而。此功能发生在实际的Kick()之后,因此功能应该按预期工作;只是没有将你重定向回原点。