Résolu XenForo depuis une application

Statut
N'est pas ouverte pour d'autres réponses.

Paradise'

Premium
Inscription
30 Juin 2013
Messages
4 259
Réactions
4 384
Points
20 795
Bonjour,

Je suis en train de me faire un petit logiciel, seulement j'aimerais faire des actions sur le forum depuis une application en C Sharp, ( Connexion & envoie de MP ).
J'ai trouver du code sur le net pour la connexion, seulement cela ne fonctionne pas ...
Voici ce que j'ai trouver :
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Net;
using System.Threading;
using RestSharp;

namespace XenforoCsharp
{
    public partial class Form1 : Form
    {
        private CookieContainer Cookie = new CookieContainer();
        private string url = "https://reality-gaming.fr/";

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            RestClient client = new RestClient(url);
            client.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0";
            client.CookieContainer = Cookie;
            RestRequest request = new RestRequest("index.php", 0);
            RestResponse response = (RestResponse)client.Execute(request);
            RestRequest request2 = new RestRequest("login", 0);
            RestResponse response2 = (RestResponse)client.Execute(request2);
            Thread.Sleep(200);
            RestRequest request3 = new RestRequest("login/login", (Method)1);
            request3.AddParameter("login", textBox1.Text);
            request3.AddParameter("register", "0");
            request3.AddParameter("password", textBox2.Text);
            request3.AddParameter("cookie_check", "1");
            request3.AddParameter("_xfToken", "");
            request3.AddParameter("redirect", url);
            RestResponse response3 = (RestResponse)client.Execute(request3);
            string input = response3.Content.Replace("\"", "").Replace("</dd></dl>", " ").Replace("</dt> <dd>", "").Replace("pairsJustified><dt>", "pairsJustified>");
            if (input.Contains("logout/?_xfToken="))
            {
                MessageBox.Show("OK");
            }
            else
            {
                MessageBox.Show("PAS OK");
            }
        }
    }
}

Cela m'affiche toujours " Pas OK " ...

Merci
 

Peaky Blinders

King Plex
Ancien staff
Inscription
27 Décembre 2012
Messages
12 668
Réactions
5 293
Points
26 663
Code:
public string Connecter()
        {
            Requete = new RestRequest("index.php", Method.GET);
            Reponse = (RestResponse)Client.Execute(Requete);
            if (Reponse.ResponseStatus == ResponseStatus.Completed)
            {
                Requete = new RestRequest("login/login", Method.POST);
                Requete.AddParameter("_xfToken", "");
                Requete.AddParameter("cookie_check", 1);
                Requete.AddParameter("login", this.Pseudo);
                Requete.AddParameter("password", this.MotDePasse);
                Requete.AddParameter("register", 0);
                Requete.AddParameter("redirect", URL);
                Requete.AddParameter("remember", 0);
                Reponse = (RestResponse)Client.Execute(Requete);

                if (Reponse.ResponseUri.LocalPath == "/login/login")
                {
                    return "Pseudo ou mot de passe incorrect.";
                }
                else
                {
                    while (Reponse.ResponseUri.LocalPath != "/")
                    {
                        if (Reponse.ResponseUri.LocalPath == "/login/two-step")
                        {
                            RGView2FA frmTwoFactor = new RGView2FA();
                            if (frmTwoFactor.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                            {
                                Requete = new RestRequest("login/two-step", Method.POST);
                                Requete.AddParameter("_xfConfirm", 1);
                                Requete.AddParameter("_xfToken", "");
                                Requete.AddParameter("code", frmTwoFactor.Code2FA);
                                Requete.AddParameter("provider", "totp");
                                Requete.AddParameter("redirect", "");
                                Requete.AddParameter("remember", 0);
                                Requete.AddParameter("save", "Confirmer");
                                Requete.AddParameter("trust", 0);
                                Reponse = (RestResponse)Client.Execute(Requete);
                            }
                        }
                    }
                    return "Connexion réussie.";
                }
            }
            else
            {
                return "Une erreur est survenue";
            }
        }
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut