我们的ASP.NET应用程序页面作为功能部署到MOSS 2007服务器场中。
当用户登录该站点时,用户将被定向到默认页面。
在右上角有一个选项“以其他用户身份登录”。 如果用户选择此选项并输入另一个用户的凭据,则会显示“拒绝访问”消息。
此消息没有意义,因为所有用户都可以访问此默认页面。此外,如果用户现在转到地址栏并手动将URL更改为默认页面,则会加载页面。我可以在“拒绝访问”URL的源部分看到目标页面的编码URL是预期的默认页面URL。
以前,我对INIT.JS文件进行了更改,以便在从不是默认页面的页面完成登录更改的情况下重定向用户。
function LoginAsAnother(url, bUseSource)
{
document.cookie="loginAsDifferentAttemptCount=0";
if (bUseSource=="1")
{
GoToPage(url);
}
else
{
var ch=url.indexOf("?") >=0 ? "&" : "?";
//url+=ch+"Source="+escapeProperly(window.location.href);
url+=ch+"Source="+escapeProperly(getSspLocation(window.location.href));
STSNavigate(url);
}
}
原始行已注释掉。
函数getSspLocation
只是我编写的一个函数,用于从任何其他URL获取默认页面URL。
function getSspLocation(url) {
var parts = url.split('/');
var result = "";
for (var i = 0; i < parts.length; ++i) {
result += parts[i] + "/";
if (parts[i].toLowerCase() == "ssp")
return result + "default.aspx";
}
return url;
}
有什么想法吗?
答案 0 :(得分:1)
这不会回答你的问题,但我建议你不要修改init.js文件。这既违反了良好的做法,也违反了微软的建议,你将失去他们的支持。此外,在应用Service Pack和/或hotfix时,它肯定会被覆盖。
如果您需要自定义OOB脚本文件的功能,请通过部署包含自定义脚本的自定义母版页来实现。