我不得不导航到kickuser.aspx以踢出用户。在我选择了想要踢出的用户之后,我收到了以下错误。
此时的网页网址为:
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
查询字符串未解码 - 不确定是否是原因。
此外,无论我登录的用户是什么,我都会收到此错误。我以前从未遇到过这个。
答案 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()之后,因此功能应该按预期工作;只是没有将你重定向回原点。