If you use an embedded javascript engine and create data models that mock up some of the more commonly accessed aspects of the DOM and the javascript apis/prototypes, then you could load the page, execute any and all javascript code and have your window.location property setter fire an event when it gets set, then just follow that url as normal. This allows you to handle computed values as well as your standard
window.location = "/home";
There are no short supply of embedded javascript engines for C#, here are just a few that I find to be really good:
Javascript.Net - Uses Google's V8 engine. Really easy to integrate in an application. Only downside-ish is keeping an unmanaged DLL with your application.
https://github.com/JavascriptNet/Javascript.Net
Jint (Javascript Interpreter for .Net) - Really good. Fully managed code. Again, easy to integrate within an application.
http://jint.codeplex.com/
The real key here is mocking up what is normally created by a browser.