Ikonen "Ansluten" visas inte i meddelandefältet när du ansluter till ett fjärrprogram med hjälp av Webbåtkomst för fjärrskrivbord

Den här artikeln innehåller en lösning på ett problem där ikonen Ansluten inte visas i meddelandefältet när du ansluter till ett fjärrprogram med hjälp av Webbåtkomst för fjärrskrivbord.

Gäller för: Windows Server 2012 R2
Ursprungligt KB-nummer: 977507

Symptom

När du ansluter till ett fjärrprogram med hjälp av Webbåtkomst för fjärrskrivbord (RD Web Access) på en dator som kör Windows Server 2008 R2 visas inte ikonen Ansluten i meddelandefältet.

Obs!

När du först kör ett fjärrprogram visas ikonen Ansluten i meddelandefältet.

WebSSO (Web Enkel inloggning) fungerar inte som förväntat, vilket orsakar en "dubbel prompt" för autentiseringsuppgifter i program som startas via RemoteApps som publiceras via Fjärrskrivbordswebbåtkomst i Windows Server 2008 R2.

Orsak

Det här problemet uppstår när det finns flera oexpirerade cookies på klientdatorn.

Lösning

Du kan lösa problemet genom att ta bort cookies.

Så här tar du bort cookies i Windows Internet Explorer 8:

  1. Klicka på Start, klicka på Kontrollpanelen, klicka på Nätverk och Internet Connections och klicka sedan på Internetalternativ.
  2. Klicka på Ta bort på fliken Allmänt.
  3. Om du bara vill ta bort cookies klickar du för att markera kryssrutan Cookies och klickar sedan för att avmarkera alla andra kryssrutor.
  4. Klicka på Ta bort. Ett annat alternativ än att ta bort cookies är att ändra skriptfilen C:\windows\Web\RDWeb\Pages\renderscripts.js på webbåtkomstservern för fjärrskrivbord.

Följ dessa steg om du vill ändra skriptfilen C:\windows\Web\RDWeb\Pages\renderscripts.js:

  1. Logga in på webbåtkomstservern för fjärrskrivbord som medlem i den lokala gruppen Administratörer.

  2. Bläddra till följande jscript-fil, högerklicka och välj Redigera.

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

  3. Hitta implementering av följande funktion i jscript-filen. function getCookieContents(strNameOfCookie)

  4. Ändra koderna i jscript-filen så att de matchar följande:

    Befintlig kod i Renderscripts.js fil:

    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);
            }
        }
    }
    

    Ändra ovanstående avsnitt i Renderscripts.js-filen så att den matchar följande:

    // 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);
            }
        }
    }
    

Löstes problemet?

Kontrollera om problemet är åtgärdat. Om problemet är åtgärdat är du klar med det här avsnittet. Om problemet inte är åtgärdat kan du kontakta supporten.

Mer information

Det här problemet kan inträffa när följande villkor är uppfyllda:

  • Webbåtkomst för fjärrskrivbord finns i en underdomän som har en överordnad domän.
  • Den överordnade domänen, eller någon annan underdomän, skriver en cookie som har domänen inställd på den överordnade domännivån. Det här beteendet delar cookien mellan alla underdomäner.

Om Webbåtkomst för fjärrskrivbord placeras på den överordnade domännivån visas anslutningsikonen i meddelandefältet. Dessutom fungerar funktionen för enkel inloggning (SSO), fjärrprogrammet och skrivbordsanslutningen som förväntat när du ansluter till fjärrprogrammet.

Dessutom kan detta ses inträffa när det finns ytterligare cookieinformation i cookien som presenteras tillbaka till klienten av webbservern.