【问题标题】:Working around AntiForgeryToken to post form data使用 AntiForgeryToken 发布表单数据
【发布时间】: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


    【解决方案1】:

    使用 OAuth 对来自第三方站点的用户进行身份验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-23
      • 2013-01-20
      • 2020-12-02
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 2019-03-07
      • 2022-11-16
      相关资源
      最近更新 更多