WebAPI授权

时间:2017-03-31 22:58:41

标签: c# asp.net-web-api

我有一个运行MVC5 WebApi 2的本地站点。我有默认的AccountController,我有一个WebApi控制器,我已经锁定了[Authorize]属性,所以我需要登录。我想要做的是先通过UWP与授权连接。

默认的Login POST方法如下所示:

mysql_*()

如果我尝试使用Postman POST到该URL,则会出现防伪令牌错误。只是想知道我需要在Web Api 2端和UWP端做什么来实现它。在UWP端,我试图通过Windows上的Web.Web.Http.HttpClient在我的XAML中单击登录按钮来设置它。没有代码,因为我在Postman首先测试看看我需要做什么来获得连接。我是否需要在AccountController上添加一个绕过防伪标记的方法,并在POST方法中使用用户名/密码,或者不建议这样做?

所以我的UWP只有一个用户名和密码的文本框,我想通过

连接到我的网络服务器

1 个答案:

答案 0 :(得分:0)

您需要添加' RequestVerificationToken'标题为邮递员要求测试。您还需要实现自己的方式来实际从api获取令牌以进行测试。类似的东西:

[HttpPost]
[AllowAnonymous]
public IActionResult GetToken()
{
   string cookieToken, formToken;
   System.Web.Helpers.AntiForgery.GetTokens(null, out cookieToken, out formToken);
   return this.Ok(cookieToken + ":" + formToken);
}

对于您的应用程序,您需要将相应的Razors @ Html.AntiForgeryToken()添加到页面生成中,并确保添加与测试中的标题相同的标题。