2009-07-14 104 views
1

我们的ASP.NET应用程序页面作为功能部署到MOSS 2007服务器场中。访问被拒绝以不同用户身份登录

当用户登录到该网站时,用户被定向到默认页面。

在右上角有一个选项“以其他用户身份登录”。 如果用户选择此选项并输入另一个用户的凭证,则显示“拒绝访问”消息。

此消息没有意义,因为所有用户都可以访问此默认页面。此外,如果用户现在转到地址栏并手动将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; 
} 

任何想法?

回答

1

这不会回答你的问题,但我会建议你不要修改init.js文件。这既违背了良好的做法,也违反了微软的建议,您将失去对它们的支持。此外,在应用服务包和/或热修补程序时,它肯定会被覆盖。

如果您需要自定义OOB脚本文件的功能,请执行此操作,方法是部署包含您的自定义脚本的自定义母版页。

+0

与问题无关,但您如何将自定义脚本挂接到LoginAsAnother函数? – 2009-07-14 12:04:30