Зарегистрированный пользователь через веб-сервисы не может войти в приложение MVC - PullRequest
0 голосов
/ 03 апреля 2019

Я отправил учетные данные для входа из приложения winforms в приложение mvc с помощью веб-служб. Это все работало нормально, и я вижу, что мои пользователи зарегистрированы и готовы к входу.

После входа мои пользователи имеют заранее определенные пароли, которые меняются ежемесячно. Я написал способ менять свои пароли ежемесячно. Запустив его с локального хоста, я заметил, что все работает отлично и мои пользователи могут легко войти в систему.

Затем я разместил свое приложение, и когда мои пользователи пытаются войти в систему, приложение лишает их доступа. Я так запутался в том, в чем проблема.

При запуске из локального режима я добавляю точки останова и вижу, что все работает хорошо, но размещенное приложение не работает.

Это мой код при входе в систему:

    [HttpPost]
    [AllowAnonymous]
    public async Task<ActionResult> ClientLogin(LoginViewModel model, string returnUrl)
    {
        if (!ModelState.IsValid)
        {
            return View(model);
        }

        var mail = model.Email.ToString();
        var ofinumber = mail.Replace("@oficinaclient.com", "");
        ofipass o = new ofipass();
        var passw = o.mysystem_password(ofinumber);

        if(model.Password != passw)
        {
            ApplicationDbContext context = new ApplicationDbContext();
            UserStore<ApplicationUser> store = new UserStore<ApplicationUser>(context);
            UserManager<ApplicationUser> UserManager = new UserManager<ApplicationUser>(store);
            var userId = await UserManager.FindByNameAsync(model.Email);
            String newPassword = passw;
            String hashedNewPassword = UserManager.PasswordHasher.HashPassword(newPassword);
            ApplicationUser cUser = await store.FindByIdAsync(userId.Id);
            await store.SetPasswordHashAsync(cUser, hashedNewPassword);
            await store.UpdateAsync(cUser);
        }

        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);
        }
    }

Пароль пользователя устанавливается в соответствии с его "ofinumber", который указан в их адресах электронной почты. Я извлекаю их номера и передаю «mysystem_password», который возвращает их пароль. Затем я изменил пароль в таблице пользователей и проверил его по введенному паролю.

Это работало нормально на localhost, но теперь отказывается работать на хосте.

Любая помощь или решения относительно того, почему это не сработает, будут очень полезны, поскольку я застрял с этим уже несколько дней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...