【发布时间】:2015-08-19 17:50:37
【问题描述】:
我目前正在编写一个最终将用作独立应用程序的网站。结果,我创建了一个 MVC 应用程序并通过表单处理登录。然后它重定向到另一个页面,基本上用户将看到一段时间。在完成应用程序的其余部分之前,用户将在 WPF 应用程序的 WebBrowser 控件中查看整个网站,作为该应用程序的一部分。
由于用户必须登录到 WPF 应用程序,我想让他们不必登录两次。因此,我的 WPF 应用程序具有导航到登录 url 并发布数据的代码,如下所示:
Uri linkUri = new Uri("https://www.myURL.com/Account/Login");
ASCIIEncoding encode = new ASCIIEncoding();
byte[] postData = encode.GetBytes("grant_type=password&username=" + _user.UserName + "&password=" + _user.Password);
string postHeaders = "Content-Type: application/x-www-form-urlencoded";
this.myWebBrowser.Navigate(linkUri, null, postData, postHeaders);
基于 Fiddler,我认为我正在正确发送数据。但是,当 WebBrowser 显示时,它会显示带有
的错误页面所需的防伪cookie “__RequestVerificationToken_L1NjaGVkdWxlci5XZWI1”不存在。
由于我从未使用 AntiForgeryToken 加载初始页面,因此这是意料之中的。但是,我想知道是否有解决此问题的方法。例如,有没有办法静默加载表单并在用户看到的情况下发布它?或者,在 WPF 中不再使用该站点之前,我是否暂时只删除 AntiForgeryToken?
提前致谢!
【问题讨论】:
标签: wpf post webbrowser-control antiforgerytoken