IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Terminal Server (mstsc, msrdp) en ActiveX


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Par défaut Terminal Server (mstsc, msrdp) en ActiveX
    Bonjour à tous !

    Voilà, dans le cadre de mon emploi, je dois développer un site internet permettant d'accéder à une session Terminal Server, sur l'un de nos serveurs.
    Tout existe en ASP.NET 1.1, cependant, pour pallier a des exigences technologiques, il faut le refaire en 2.0, et malheureusement, le code importé tel quel, ne fonctionne pas.

    J'ai essayé à partir de diverses sources sur le net, mais rien ne semble fonctionner.

    Je dispose du fichier msrdp.cab (et son contenu, le fichier OCX et l'INF), permettant d'installer le controle ActiveX.

    Cependant, quand je reprends des sources trouvés sur le net, j'ai un beau message d'erreur...

    Voici le code et l'erreur, dont j'ignore la provenance...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
     
    private void Page_Load(object sender, System.EventArgs e)
            {
                //try
                //{
                    //HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
                    string ServerName = "192.168.176.100";
                    string Domain = "";
                    string UserName = "monlogin";
                    string Password = "monpass";
                    string reswidth = "640";
                    string resheight = "480";
     
                    HtmlGenericControl div = new HtmlGenericControl("div");
                    //div.ID = "connectArea";
                    //HtmlGenericControl center = new HtmlGenericControl("center");
                    //div.Controls.Add(center);
     
                    // Connect button for testing
                    //HtmlInputButton rdpButton = new HtmlInputButton();
                    //rdpButton.Attributes.Add("type", "button");
                    //rdpButton.Attributes.Add("id", "btnConnect");
                    //rdpButton.Attributes.Add("name", "ConnectButton");
                    //rdpButton.Attributes.Add("value", "Connect");
                    //rdpButton.Attributes.Add("runat", "server");
                    //rdpButton.Attributes.Add("onclick", "return RdpConnect()");
                    //Page.Controls.Add(rdpButton);
     
                    // MsRdpClient ActiveX object
                    HtmlGenericControl rdp = new HtmlGenericControl("object");
                    rdp.Attributes["id"] = "MsRdpClient";
                    rdp.Attributes["name"] = "MsRdpClient";
                    rdp.Attributes["classid"] = "clsid:9059f30f-4eb1-4bd2-9fdc-36f43a218f4a";
                    rdp.Attributes["codebase"] = "~/bin/msrdp.cab#version=5,1,2600,1095";
                    //rdp.Attributes["runat"] = "server";
                    rdp.Attributes["width"] = reswidth;
                    rdp.Attributes["height"] = resheight;
                    div.Controls.Add(rdp);
     
                    Panel p = new Panel();
                    p.ID = "Panel1";
                    p.ScrollBars = ScrollBars.Both;
                    p.Wrap = true;
                    p.Height = Unit.Percentage(60);
                    p.Width = Unit.Percentage(100);
                    p.Controls.Add(div);
                    Page.Controls.Add(p);
     
                    // rdpConnect
                    StringBuilder rdpConnect = new StringBuilder();
                    rdpConnect.Append("function RdpConnect()");
                    rdpConnect.Append("{");
                    rdpConnect.AppendFormat("MsRdpClient.Server=\"" + ServerName + "\";");
                    rdpConnect.AppendFormat("MsRdpClient.Domain=\"" + Domain + "\";");
                    rdpConnect.AppendFormat("MsRdpClient.UserName=\"" + UserName + "\";");
                    rdpConnect.AppendFormat("MsRdpClient.AdvancedSettings2.ClearTextpassword=\"" + Password + "\";");
                    rdpConnect.Append("MsRdpClient.FullScreen=0;");
                    rdpConnect.Append("MsRdpClient.Width=\"" + reswidth + "\";");
                    rdpConnect.Append("MsRdpClient.Height=\"" + resheight + "\";");
                    rdpConnect.Append("MsRdpClient.DesktopWidth=\"" + reswidth + "\";");
                    rdpConnect.Append("MsRdpClient.DesktopHeight=\"" + resheight + "\";");
                    rdpConnect.Append("MsRdpClient.AdvancedSettings2.RedirectDrives=0;");
                    rdpConnect.Append("MsRdpClient.AdvancedSettings2.RedirectPrinters=1;");
                    rdpConnect.Append("MsRdpClient.AdvancedSettings2.RedirectPorts=0;");
                    rdpConnect.Append("MsRdpClient.AdvancedSettings2.RedirectSmartCards=0 ;");
                    rdpConnect.Append("if (MsRdpClient.SecuredSettingsEnabled)");
                    rdpConnect.Append("{");
                    rdpConnect.Append("MsRdpClient.SecuredSettings.StartProgram=\"notepad.exe\";");
                    rdpConnect.Append("}");
                    rdpConnect.AppendFormat("MsRdpClient.FullScreenTitle=\"" + ServerName + "\";");
                    rdpConnect.Append("MsRdpClient.OnDisconnected=MsRdpClient_OnDisconnec ted();");
                    rdpConnect.Append("MsRdpClient.Onconnected=MsRdpClient_Onconnected(); ");
                    rdpConnect.Append("MsRdpClient.Connect()");
                    rdpConnect.Append("}");
     
                    //anu
                    // MsRdp_onConnected
                    StringBuilder connected = new StringBuilder();
                    connected.Append("Function MsRdpClient_OnConnected()");
                    connected.Append("{");
                    connected.AppendFormat("Window.Navigate(\"items.aspx?nid=Maintenance\");");
                    connected.AppendFormat("return true;");
                    connected.Append("}");
                    // Insert the javascript function
                    HtmlGenericControl connectFunction = new HtmlGenericControl("script");
                    connectFunction.Attributes.Add("type", "text/javacript");
                    connectFunction.Attributes.Add("language", "javascript");
                    connectFunction.Attributes["runat"] = "server";
                    connectFunction.InnerHtml = connected.ToString();
     
                    // MsRdp_onDisConnected
                    StringBuilder disconnected = new StringBuilder();
                    disconnected.Append("Function MsRdpClient_OnDisconnected()");
                    disconnected.Append("{");
                    disconnected.AppendFormat("history.go(-1)");
                    //disconnected.AppendFormat("Window.Navigate(\"items.aspx?nid=Maintenance\");");
                    disconnected.AppendFormat("return true;");
                    disconnected.Append("}");
                    // Insert the javascript function
                    HtmlGenericControl disconnectFunction = new HtmlGenericControl("script");
                    disconnectFunction.Attributes.Add("type", "text/javacript");
                    disconnectFunction.Attributes.Add("language", "javascript");
                    disconnectFunction.Attributes["runat"] = "server";
                    disconnectFunction.InnerHtml = disconnected.ToString();
                    Page.Controls.Add(disconnectFunction);
     
                    //here
     
                    // Insert the javascript function
                    HtmlGenericControl rdpFunctions = new HtmlGenericControl("script");
                    rdpFunctions.Attributes.Add("type", "text/javascript");
                    rdpFunctions.Attributes.Add("language", "javascript");
                    rdpFunctions.Attributes["runat"] = "server";
                    rdpFunctions.InnerHtml = rdpConnect.ToString();
                    Page.Controls.Add(rdpFunctions);
     
                    // call the Javascript function RdpConnect() here
                    LiteralControl rdpconnect = new LiteralControl("<script type='text/javascript'>RdpConnect();</script>");
                    Page.Controls.Add(rdpconnect);
                    //p.Controls.Add(rdpconnect);
                //}
                //catch (Exception e)
                //{
                //    FormsAuthentication.SignOut();
                //    Response.Redirect("Login.aspx", true);
                //}
            }
    Et l'erreur rencontrée est :

    La collection Controls ne peut pas être modifiée, car le contrôle contient des blocs de code (c'est-à-dire <% ... %>).

    Ceci intervient lorsque je fais le "Page.Controls.Add(p);" (ligne 46 du code, lors de la création du Panel)

    Auriez-vous une idée de la manière de procéder, même si je dois pour cela revoir tout mon code, afin de parvenir à faire marcher ce satané contrôle ActiveX MSRDP...

    Merci beaucoup à ceux qui prendront le temps de lire, et encore plus à ceux qui réfléchiront, et trouveront une solution.

    Ciao ciao ! ^^

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    A vue de nez, y a de l'AJAX dans ta page et qq part dans le code ASPX t'as une balise <%

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 6
    Par défaut
    En effet, il y avait quelque part, un petit bout de code Javascript qui trainait sur le fichier aspx... je l'ai viré, et désormais, ca marche pas trop mal...

    Voila le code de la page, qui fonctionne désormais sans soucis ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
    using System;
    using System.Web.Security;
    using System.Net;
    using System.Text;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI;
    using System.Web;
     
    namespace FirstGate
    {
        public partial class _default : System.Web.UI.Page
        {
            private void Page_Load(object sender, EventArgs e)
            {
                try
                {
                    string ServerName = Request.QueryString[0] != null ? Request.QueryString[0] : "10.0.0.2";
                    //string Domain = "";
                    string UserName = "admin";
                    string Password = "lepassadmin";
                    string reswidth = "800";
                    string resheight = "600";
                    HtmlGenericControl div = new HtmlGenericControl("div");
     
                    // Connect button for testing
                    //HtmlInputButton rdpButton = new HtmlInputButton();
                    //rdpButton.Attributes.Add("type", "button");
                    //rdpButton.Attributes.Add("id", "btnConnect");
                    //rdpButton.Attributes.Add("name", "ConnectButton");
                    //rdpButton.Attributes.Add("value", "Connect");
                    //rdpButton.Attributes.Add("runat", "server");
                    //rdpButton.Attributes.Add("onclick", "return RdpConnect()");
                    //div.Controls.Add(rdpButton);
                    //btnConnect.Attributes.Add("OnClick", "javascript:RdpConnect()");
     
                    // MsRdpClient ActiveX object
                    HtmlGenericControl rdp = new HtmlGenericControl("object");
                    rdp.Attributes["id"] = "MsRdpClient";
                    rdp.Attributes["name"] = "MsRdpClient";
                    rdp.Attributes["classid"] = "clsid:7584c670-2274-4efb-b00b-d6aaba6d3850";
                    rdp.Attributes["codebase"] = "msrdp.cab#version=5.2.3790.59";
                    rdp.Attributes["runat"] = "server";
                    rdp.Attributes["width"] = "10";//reswidth;
                    rdp.Attributes["height"] = "10";// resheight;
                    div.Controls.Add(rdp);
     
                    Page.Controls.Add(div);
     
                    // rdpConnect
                    StringBuilder rdpConnect = new StringBuilder();
                    rdpConnect.Append("function RdpConnect()");
                    rdpConnect.Append("{");
                    rdpConnect.Append("MsRdpClient.Width=100;");
                    rdpConnect.Append("MsRdpClient.Server=\"" + ServerName + "\";");
                    //rdpConnect.AppendFormat("MsRdpClient.Domain=\"" + Domain + "\";");
                    rdpConnect.Append("MsRdpClient.UserName=\"" + UserName + "\";");
                    rdpConnect.Append("MsRdpClient.AdvancedSettings2.ClearTextpassword=\"" + Password + "\";");
                    rdpConnect.Append("MsRdpClient.FullScreen=1;");
                    rdpConnect.Append("MsRdpClient.Width=\"" + reswidth + "\";");
                    rdpConnect.Append("MsRdpClient.Height=\"" + resheight + "\";");
                    rdpConnect.Append("MsRdpClient.DesktopWidth=\"" + reswidth + "\";");
                    rdpConnect.Append("MsRdpClient.DesktopHeight=\"" + resheight + "\";");
                    rdpConnect.Append("MsRdpClient.AdvancedSettings2.RedirectDrives=0;");
                    rdpConnect.Append("MsRdpClient.AdvancedSettings2.RedirectPrinters=1;");
                    rdpConnect.Append("MsRdpClient.AdvancedSettings2.RedirectPorts=0;");
                    rdpConnect.Append("MsRdpClient.AdvancedSettings2.RedirectSmartCards=0 ;");
                    rdpConnect.Append("if (MsRdpClient.SecuredSettingsEnabled)");
                    rdpConnect.Append("{");
                    rdpConnect.Append("MsRdpClient.SecuredSettings.StartProgram=\"notepad.exe\";");
                    rdpConnect.Append("}");
                    rdpConnect.AppendFormat("MsRdpClient.FullScreenTitle=\"" + ServerName + "\";");
                    rdpConnect.Append("MsRdpClient.Connect();");
                    rdpConnect.Append("}");
     
                    // Insert the javascript function
                    HtmlGenericControl rdpFunctions = new HtmlGenericControl("script");
                    rdpFunctions.Attributes.Add("type", "text/javascript");
                    rdpFunctions.Attributes.Add("language", "javascript");
                    rdpFunctions.Attributes["runat"] = "server";
                    rdpFunctions.InnerHtml = rdpConnect.ToString();
                    Page.Controls.Add(rdpFunctions);
     
                    // call the Javascript function RdpConnect() here
                    LiteralControl rdpconnect = new LiteralControl("<script type='text/javascript'>RdpConnect();</script>");
                    Page.Controls.Add(rdpconnect);
                }
                catch (Exception exc)
                {
                    Response.Write(exc.Message);
                }
            }
     
            override protected void OnInit(EventArgs e)
            {
                InitializeComponent();
                base.OnInit(e);
            }
     
            private void InitializeComponent()
            {
                this.Load += new System.EventHandler(this.Page_Load);
            }
        }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Access et Terminal Server
    Par maoboyindo dans le forum Access
    Réponses: 12
    Dernier message: 17/07/2006, 14h24
  2. tskill-problème terminal server
    Par mathieu_r dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 12/06/2006, 15h27
  3. Terminal Server et SMB 2003 ?
    Par arnaud_verlaine dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 19/12/2005, 13h45
  4. Client pour un terminal server
    Par greuh dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 21/10/2005, 14h48
  5. Existe-t-il un équivalent de terminal server pour Windows?
    Par kikica dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 27/08/2005, 18h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo