This is for a Desktop C# app in Visual Studio 2012.
I need to use a WebBrowser control in C# to log into a Windows Live instance, getting the control to open the page is nothing, but signing in is causing me a headache.
I’ve tried about 4 different suggestions gleaned from Google, but I’m not getting logged in properly.
This is what I’ve got:
//FORM1 code
//Added reference to 'Microsoft Internet Controls'
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;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
webBrowser1.Url = new Uri("http://digitbot.com/live/");
}
SHDocVw.WebBrowser nativeBrowser;
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
nativeBrowser = (SHDocVw.WebBrowser)webBrowser1.ActiveXInstance;
nativeBrowser.NewWindow2 += nativeBrowser_NewWindow2;
}
protected override void OnFormClosing(FormClosingEventArgs e)
{
nativeBrowser.NewWindow2 -= nativeBrowser_NewWindow2;
base.OnFormClosing(e);
}
void nativeBrowser_NewWindow2(ref object ppDisp, ref bool Cancel)
{
var popup = new Form2();
popup.Show(this);
ppDisp = popup.Browser.ActiveXInstance;
}
}
}
//FORM2 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;
namespace WindowsFormsApplication3
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public WebBrowser Browser
{
get { return webBrowser1; }
}
}
}
This launches the login pop-up in the second window, but somehow it never seems to complete the process.
Following the link in the code above in a browser should get you logged in and should show raw JSON of calendar events followed by a profile picture. I need to get the same result in the WebBrowser control.
Any help would be great, I’m stuck.
Never got my initial approach to work, so I switched to using a WebClient and Browser with REST server-side since I needed to do stuff with the user logged out.
This is the basic setup on the C# Windows 8 side with WPF:
This is the bulk of the code in my main window:
The Windows Live authorization will then happen in this browser and go away once we’re logged in.
XAML for the browser:
And here’s the browser code:
Here’s a link to a more lengthy explanation: http://www.codeproject.com/Articles/497199/Switch-to-SMS-Text-Event-Reminders-When-Your-Ultra#live