我有一个本地站点运行MVC5 WebApi 2.我有默认的AccountController那里,我有一个WebApi控制器我已经锁定了[Authorize]属性,所以我需要记录英寸我想要做的是通过UWP与授权第一连接到它。WebAPI授权
默认的登录POST方法是这样的:
//
// POST: /Account/Login
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (!ModelState.IsValid)
{
return View(model);
}
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
return RedirectToLocal(returnUrl);
case SignInStatus.LockedOut:
return View("Lockout");
case SignInStatus.RequiresVerification:
return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
case SignInStatus.Failure:
default:
ModelState.AddModelError("", "Invalid login attempt.");
return View(model);
}
}
如果我尝试使用邮差张贴到该网址我得到的防伪标记的错误。只是想知道我需要在Web Api 2端和UWP端做什么来实现它。在UWP端,我试图通过登录按钮上的Windows.Web.Http.HttpClient单击我的XAML来设置它。没有代码,因为我先在Postman中测试,看看我需要做些什么来获得连接。我是否需要在AccountController上添加一个绕过防伪标记的方法,并在POST方法上只接受用户名/密码,或者不建议这样做?
所以我UWP只是表示用户名和密码的文本框,我想通过
这是一个很好的建议。这是我遇到的解决方案。我必须修复ApplicationOAuthProvider以接受我的凭证和client_id到API,这样我就可以直接点击/令牌,而无需通过控制器和Web耦合视图。不管是我构建Xamarin和UWP应用程序来连接我的站点,只有在客户端连接API时才有意义。 –
这是一个导致答案的堆栈交换(在另一个问题中,当时这是一个复杂的问题): http://stackoverflow.com/questions/43175734/anti-forgery-token-web-api-2? noredirect = 1#comment73425968_43175734 –