.net core 2.0 бритвенная аутентификация модели страницы с пользовательской проблемой UserManager и UserStore - PullRequest
0 голосов
/ 05 июля 2019

У меня есть это в Startup.cs

services.AddIdentity<AppUser, AppUserRole>(cfg =>
        {
            cfg.User = new UserOptions() { };
            cfg.User.RequireUniqueEmail = false;
            cfg.SignIn.RequireConfirmedEmail = false;

        })
       .AddUserManager<AppUserManager<AppUser>>()
       .AddUserStore<AppUserStore>()
       .AddRoleStore<AppRoleStore>()
       .AddDefaultTokenProviders();

        services.AddAuthentication();

        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

и это

if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Error");
        }

        app.UseStaticFiles();


        app.UseAuthentication();
        app.UseMvc();

Login.cshtml.cs имеет это:

    public async Task<IActionResult> OnPostAsync(string returnUrl,string handler)
        {
            if (!ModelState.IsValid)
            {
                return Page();
            }



            var appUser = new AppUser() { UserName = UserLogin.Username, PasswordHash=UserLogin.Password };

            var result = await _signUpMgr.PasswordSignInAsync(appUser, UserLogin.Password, false, false);
            if(!result.Succeeded)
                return BadRequest("Bad username or password");

            return LocalRedirect("/Index");

Я использую AppUserManager и AppUserStore, чтобы просто возвращать жестко закодированные значения. Если это когда-нибудь сработает, я позвоню в службу REST. Я делаю это так (пример для UserManager, я также переопределяю 3 метода из UserStore):

public override Task<bool> CheckPasswordAsync(TUser user, string password)
    {
        //return new Task<bool>(() => _authServiceProxy.UserHasAccess(_appConf.Value.CslLink, user.UserName, password));
        return Task.FromResult(true);

Все предположительно работает просто отлично. Результат входа успешен, но когда я перенаправляю, я получаю это: enter image description here И даже если я вручную перехожу на страницу индекса, он перенаправляет меня на страницу входа в систему, и если я просматриваю файлы cookie (нажав F12 в браузере), я вижу, что файл cookie не был установлен.

Кто-нибудь знает, что я делаю неправильно?

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