Avatar billede laasby Nybegynder
23. oktober 2008 - 23:49 Der er 5 kommentarer og
1 løsning

Oversættelse fra C# aspx til Windows Form

Hej

Jeg har noget kode som er lavet til C#, men beregnet til at køre på en hjemmeside.

Jeg kunne dog godt tænke mig, at få det til at køre som et alm. Windows program istedet, og vil høre om nogen kan oversætte det.

Min tanke er at alt output "bare" skal puttes i f.eks. en textbox.

Baggrund: LogMeIn er et fjernstyringsprogram som kan man kan fjernstyre pc'ere med. Når man skal hjælpe en bruger er det letteste at give kunden en PIN-kode, som kunden taster ind på www.logmein123.com. Derefter vil der være mulighed for den person som har givet pinkoden at fjernstyre pc'en.

Koden gør altså det, at den logger på den angivne LogMeIn Reach konto og kommer retur med denne PIN kode.

Kodeeksemplet kan findes her:http://logmeinwiki.com/wiki/Rescue:API/requestPINCode/C_Sharp_with_HttpWebRequest

Mere baggrund kan findes her: http://logmeinwiki.com/wiki/Rescue:API

Håbet for mig er, at ende op med en kode jeg kan lægge under en knap (Button) i en Windows Form i C#. Alt output går til en textbox i samme form.

Her er koden der ønskes oversat:

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System" %>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%
    string sEndpoint = "https://secure.logmeinrescue.com/API/";  //add actionName.aspx? for each action called
    string sEmail = "some@email.com";
    string sPwd = "secretPassword";

    //set up the request
    HttpWebRequest oReq = (HttpWebRequest)System.Net.WebRequest.Create(sEndpoint + "login.aspx" + "?email=" + sEmail + "&pwd=" + sPwd);
   
    //create a cookie container to store the cookies for this session
    oReq.CookieContainer = new CookieContainer();
   
   
    //get the response
    HttpWebResponse oResp = (HttpWebResponse)oReq.GetResponse();

string sResp = new StreamReader(oResp.GetResponseStream()).ReadToEnd();
Response.Write("Login result: " + sResp + "<br />");  //do something more elegant here

/*
//debug cookies
foreach (Cookie cook in oResp.Cookies)
{
Response.Write("Cookie:" + "<br />");
Response.Write("Name: " + cook.Name + " " + "Value: " + cook.Value + "<br />");
Response.Write("Domain: " + cook.Domain + "<br />");
Response.Write("Path: " + cook.Path + "<br />");
Response.Write("Port: " + cook.Port + "<br />");
Response.Write("Secure: " + cook.Secure + "<br />");

Response.Write("When issued: " + cook.TimeStamp + "<br />");
Response.Write("Expires: " + cook.Expires + " " + "Expired? " + cook.Expired + "<br />");
Response.Write("Don't save: " + cook.Discard + "<br />");
Response.Write("Comment: " + cook.Comment + "<br />");
Response.Write("Uri for comments: " + cook.CommentUri + "<br />");
Response.Write("Version: RFC " + cook.Version + "<br />");
   
// Show the string representation of the cookie.
Response.Write("String: " + cook.ToString());
}*/
   
//add cookies to cookie container
CookieContainer sessioncookie = oReq.CookieContainer;

    //get the PINCode info
HttpWebRequest oReqPINCode = (HttpWebRequest)System.Net.WebRequest.Create(sEndpoint + "requestPINCode.aspx");
oReqPINCode.CookieContainer = sessioncookie;

HttpWebResponse oRespPINCode = (HttpWebResponse)oReqPINCode.GetResponse();
string sRespPINCode = new StreamReader(oRespPINCode.GetResponseStream()).ReadToEnd();
Response.Write("requestPINCode result: " + sRespPINCode + "<br />");  //do something more elegant here

%>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Rescue API requestPINCode Test</title>
</head>
<body>

</body>
</html>
Avatar billede sph1nx Nybegynder
24. oktober 2008 - 15:14 #1
Nu kan jeg ikke lige gennemskue hvordan det skal bruges, men alligvel :
lav en form med en knap på og kald den button1 og kopier det her kode ind :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string sEndpoint = "https://secure.logmeinrescue.com/API/";  //add actionName.aspx? for each action called
            string sEmail = "some@email.com"; //Lav tekstbox eller hardcode disse
            string sPwd = "secretPassword";  //Lav tekstbox eller hardcode disse

            //set up the request
            HttpWebRequest oReq = (HttpWebRequest)System.Net.WebRequest.Create(sEndpoint + "login.aspx" + "?email=" + sEmail + "&pwd=" + sPwd);

            //create a cookie container to store the cookies for this session
            oReq.CookieContainer = new CookieContainer();


            //get the response
            HttpWebResponse oResp = (HttpWebResponse)oReq.GetResponse();

            string sResp = new StreamReader(oResp.GetResponseStream()).ReadToEnd();
            CookieContainer sessioncookie = oReq.CookieContainer;

            //get the PINCode info
            HttpWebRequest oReqPINCode = (HttpWebRequest)System.Net.WebRequest.Create(sEndpoint + "requestPINCode.aspx");
            oReqPINCode.CookieContainer = sessioncookie;

            HttpWebResponse oRespPINCode = (HttpWebResponse)oReqPINCode.GetResponse();
            string sRespPINCode = new StreamReader(oRespPINCode.GetResponseStream()).ReadToEnd();
            MessageBox.Show(sRespPINCode);
        }
    }
}

så skulle du ved tryk på knappen gerne få en messagebox med din pinkode i
Avatar billede sph1nx Nybegynder
24. oktober 2008 - 15:15 #2
Hov, glemte lige at sige at jeg har smidt det der cookie response.write ud, kunne ikke lige gennemskue om det var vigtigt i farten :P
Avatar billede sph1nx Nybegynder
24. oktober 2008 - 15:22 #3
her har ud også alt det response write med, lige hurtigt kastet sammen

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string sEndpoint = "https://secure.logmeinrescue.com/API/";  //add actionName.aspx? for each action called
            string sEmail = "some@email.com";
            string sPwd = "secretPassword";

            //set up the request
            HttpWebRequest oReq = (HttpWebRequest)System.Net.WebRequest.Create(sEndpoint + "login.aspx" + "?email=" + sEmail + "&pwd=" + sPwd);

            //create a cookie container to store the cookies for this session
            oReq.CookieContainer = new CookieContainer();
       
            //get the response
            HttpWebResponse oResp = (HttpWebResponse)oReq.GetResponse();
            foreach (Cookie cook in oResp.Cookies)
            {
                MessageBox.Show("Cookie:" +"\n"+
                "Name: " + cook.Name + " " + "Value: " + cook.Value +"\n"+
                "Domain: " + cook.Domain +"\n"+
                "Path: " + cook.Path +"\n"+
                "Port: " + cook.Port +"\n"+
                "Secure: " + cook.Secure +"\n"+"\n"+

                "When issued: " + cook.TimeStamp +"\n"+
                "Expires: " + cook.Expires + " " + "Expired? " + cook.Expired +"\n"+
                "Don't save: " + cook.Discard +"\n"+
                "Comment: " + cook.Comment +"\n"+
                "Uri for comments: " + cook.CommentUri + "\n" +
                "Version: RFC " + cook.Version + "\n"+"\n"+

                cook.ToString());
            }
            string sResp = new StreamReader(oResp.GetResponseStream()).ReadToEnd();
            CookieContainer sessioncookie = oReq.CookieContainer;

            //get the PINCode info
            HttpWebRequest oReqPINCode = (HttpWebRequest)System.Net.WebRequest.Create(sEndpoint + "requestPINCode.aspx");
            oReqPINCode.CookieContainer = sessioncookie;

            HttpWebResponse oRespPINCode = (HttpWebResponse)oReqPINCode.GetResponse();
            string sRespPINCode = new StreamReader(oRespPINCode.GetResponseStream()).ReadToEnd();
            MessageBox.Show(sRespPINCode);
        }
    }
}
Avatar billede sph1nx Nybegynder
03. november 2008 - 15:12 #4
laasby?
Avatar billede laasby Nybegynder
04. november 2008 - 22:12 #5
Hej du

Jeg skulle lige have installeret Visual Studio 2008 C# Express på min pc for at teste.

1000-tak - det virker - Det er jeg super glad for.

Lægger du et svar så du kan få point :-)

/Laasby
Avatar billede sph1nx Nybegynder
05. november 2008 - 08:18 #6
svar her
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester