文章编号: 977507 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

在运行 Windows Server 2008 R2 的计算机上使用远程桌面 Web 访问(RD Web 访问)连接到远程应用程序时,通知区域不显示“已连接”图标。

注意 首次运行远程应用程序时,通知区域不显示“已连接”图标。

WebSSO(Web 单一登录)不按预期效果运行,导致“两次提示”需要 Windows Server 2008 R2 中远程桌面 Web 访问发布的“RemoteApps”启动的应用程序中的凭证。

原因

当客户端计算机上存在多个未过期的 cookies 时,会出现此问题。

替代方法

若要解决此问题,请删除 cookies。

若需要我们帮助您解决此问题,请转到“帮我修复此问题”部分。如果您希望自己修复此问题,请转到“我自己修复此问题”部分。

帮我修复此问题



若要自动修复此问题,请单击“Fix it”按钮或链接。在“文件下载”对话框中,单击“运行”,然后按照“修复此问题”向导中的步骤操作。


修复此问题
Microsoft Fix it 50631


注意
  • 此向导可能只提供英文版本。但是,自动修复功能同样适用于其他语言版本的 Windows。
  • 如果并非本机存在问题,请将 Fix it 解决方案保存在闪存驱动器或 CD 中,然后在出现问题的计算机上运行该解决方案。

然后转到“问题是否已修复?”部分。



我自己修复此问题

若要删除 Windows Internet Explorer 8 中的 cookies,请执行以下步骤:
  1. 依次单击“开始”、“控制面板”、“网络和 Internet 连接”和“Internet 选项”
  2. 在“常规”选项卡上,单击“删除”
  3. 若只要删除 cookies,请单击选择“Cookies”复选框,然后单击以清除其他所有复选框。
  4. 单击“删除”

除了删除 cookies 之外,还可以更改 RD Web 访问服务器上的脚本文件 C:\windows\Web\RDWeb\Pages\renderscripts.js

若要更改脚本文件 C:\windows\Web\RDWeb\Pages\renderscripts.js,请执行以下步骤:

1. 以本地管理员组成员的身份登录到“远程桌面 Web 访问服务器”
2. 找到以下脚本文件,右键单击并选择“编辑”

C:\windows\Web\RDWeb\Pages\renderscripts.js

3. 在该脚本文件中找到以下函数的实现。
function getCookieContents(strNameOfCookie)

4. 修改 jscript 文件中的代码以匹配:


Renderscripts.js 文件中的现有代码:

------------------------------------------
function getCookieContents(strNameOfCookie)
{
var objCookie;
var objCookieName;
var objCookieContents = null;

if ( strNameOfCookie != null &&
strNameOfCookie != "" &&
document.cookie.length > 0 )
{
var objCookies = document.cookie.split(";");
for (var iIndex = 0; iIndex < objCookies.length; iIndex++)
{
objCookie = objCookies[iIndex];
objCookieName = objCookie.substring(0, strNameOfCookie.length);



更改 Renderscripts.js 文件中的上述部分以匹配:

---------------------------------------------------------------------------------------
// Add a function called trim as a method of the prototype
// object of the String constructor.
String.prototype.trim = function()
{
// Use a regular expression to replace leading and trailing
// spaces with the empty string
return this.replace(/(^\s*)|(\s*$)/g, "");
}
// End of the new-added function

function getCookieContents(strNameOfCookie)
{
var objCookie;
var objCookieName;
var objCookieContents = null;

if ( strNameOfCookie != null &&
strNameOfCookie != "" &&
document.cookie.length > 0 )
{
var objCookies = document.cookie.split(";");
for (var iIndex = 0; iIndex < objCookies.length; iIndex++)
{
objCookie = objCookies[iIndex];
objCookie = objCookie.trim(); //Calling the new-added function
objCookieName = objCookie.substring(0, strNameOfCookie.length);

问题是否已修复?

  • 检查问题是否已修复。如果问题已修复,您不用再往下看了。如果问题没有修复,您可以联系技术支持部门
  • 如果您能提供反馈我们将不胜感激。若要提供反馈意见或报告使用此解决方案出现的任何问题,请在“帮我修复此问题”博客中留言或向我们发送电子邮件

更多信息

满足以下条件时可能会发生此问题:
  • 远程桌面 Web 访问存在的子域拥有父域。
  • 父域或其他任何子域写下的 cookie 将域设置为父域级别。这种行为共享所有子域之间的 cookie。
如果远程桌面 Web 访问置于父域级别,则通知区域会显示连接图标。此外,连接到远程应用程序时,单一登录 (SSO) 功能、远程应用程序和桌面连接按预期运行。


此外,当 Web 服务器提供回客户端的 cookie 中包含其他 cookie 信息时,也会发生此问题。



注意:本篇“快速发布”文章是从 Microsoft 支持组织直接创建的。 文中包含的信息按原样提供,用于响应紧急问题。 由于发布仓促,材料可能包含印刷错误,并且可能随时修订,恕不另行通知。 有关其他注意事项,请参阅使用条款

属性

文章编号: 977507 - 最后修改: 2011年10月21日 - 修订: 1.0
这篇文章中的信息适用于:
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Standard
关键字:?
kbtshoot kbexpertisebeginner kbsurveynew kbprb kbfixme kbmsifixme KB977507
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com