【发布时间】:2019-05-05 05:02:58
【问题描述】:
当用户通过身份验证时,我在调用 Web Api 方法时遇到问题。
事实是,当我在用户通过身份验证时调用 Web Api 方法时,它不会被重新识别。
以前,我在 AccountController 中的 Logout 方法有问题。我通过使用 AllowAnonymous 属性解决了它。
但是,现在我在使用 ChangePassword 方法时遇到了同样的问题。在这种情况下,我无法添加 AllowAnonymous 属性,因为当我这样做时,我无法检索登录的用户 ID。
如果我不添加 AllowAnonymous 属性,系统会抛出一个禁止的错误。
我被困在这里....我该如何解决?
例如,这是 AccountController 中的 ChangePassword 方法:
// POST api/Account/ChangePassword
[Route("ChangePassword")]
public async Task<IHttpActionResult> ChangePassword(ChangePasswordBindingModel model)
{
if (!ModelState.IsValid)
{
// return BadRequest(ModelState);
return Json(GetModelErrorMessages());
}
try
{
IdentityResult result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword,
model.NewPassword);
if (!result.Succeeded)
{
return GetErrorResult(result);
}
}
catch(Exception ex)
{
}
return Ok();
}
谢谢 詹姆
【问题讨论】:
-
你使用dotnet core吗?可以分享一下注册吗?也许结帐Question 34306891 和Filters in ASP.NET Core
-
您的意思是我更新问题以向您显示 Visual Studio 添加的用于注册用户的控制器操作?
标签: c# authentication asp.net-web-api asp.net-web-api2