У меня проблема с методом входа в систему , я использую базу данных идентификаторов Asp.Net, но у меня проблема при тестировании api, он вылетает при переменном результате и получает 500 Internal Server Error ,
public async Task<IHttpActionResult> Login([FromBody]LoginViewModel model)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
switch (result)
{
case SignInStatus.Success:
return Ok();
default:
ModelState.AddModelError("", "Invalid login attempt.");
//return GetErrorResult(result);
return ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError,
"Check your email and password again"));
}
}
И это ошибка
"$id": "1", "Message": "An error has occurred.", "ExceptionMessage": "Object reference not set to an instance of an object.", "ExceptionType": "System.NullReferenceException", "StackTrace": " at Land.Controllers.API.Customer.AccountController.d__21.MoveNext() in F:\Me\Private\Land\Land\Controllers\API\Customer\AccountController.cs:line 206 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Threading.Tasks.TaskHelpersExtensions.d__1`1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ApiControllerActionInvoker.d__1.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Controllers.ActionFilterResult.d__5.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__15.MoveNext()"
Проверить, является ли модель нулевой?
Я проверяю модель с помощью if (! Model.state.isvalid), и это дает мне понять, что она верна, проблема в var result = await SignInManager.PasswordSignInAsync (model.Email, model.Password, model.RememberMe, shouldLockout: false); Он вылетает и не дает мне никакого результата
Как вы это тестируете? Вы можете поделиться своим клиентским кодом?
Вы знаете, на какой линии он разбился? Проверьте следующее: строка подключения верна, имя пользователя / пароль в строке подключения верны. Не уверен, насколько далеко вы продвинулись, но убедитесь, что пользователь также существует в базе данных.