第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

簡(jiǎn)單的 IUserStore,IUserPasswordStore 實(shí)現(xiàn)給出了無效的登錄嘗試

簡(jiǎn)單的 IUserStore,IUserPasswordStore 實(shí)現(xiàn)給出了無效的登錄嘗試

C#
阿晨1998 2022-06-12 11:16:49
我正在試驗(yàn) Aspnet Core 2.2,并IdentityUser用我的MyIdentityUser. 當(dāng)我嘗試登錄時(shí),我得到“無效的登錄嘗試”。為了讓我登錄,我錯(cuò)過了什么?該ConfigureServices方法使用 my 設(shè)置身份,MyIdentiyUser如下MyIUserStore所示:services.AddDefaultIdentity<MyIdentityUser>()    .AddDefaultUI(UIFramework.Bootstrap4)    .AddUserStore<MyUserStore>();通過盡可能謹(jǐn)慎地實(shí)現(xiàn)所有方法(我從拋出每個(gè)方法開始IUserStore,然后實(shí)現(xiàn)被調(diào)用的方法),我得到了這個(gè):IUserPasswordStoreNotImplementedExceptionpublic class MyUserStore : IUserStore<MyIdentityUser>, IUserPasswordStore<MyIdentityUser>{    public void Dispose() { }    public Task<MyIdentityUser> FindByNameAsync(string normalizedUserName, CancellationToken cancellationToken)    {        var ret = new MyIdentityUser        {            Id = "1",            UserName = normalizedUserName        };        return Task.FromResult(ret);    }    public Task<string> GetUserIdAsync(MyIdentityUser user, CancellationToken cancellationToken)    {        return Task.FromResult(user.UserName);    }    public Task<string> GetPasswordHashAsync(MyIdentityUser user, CancellationToken cancellationToken)    {        return Task.FromResult("asdf");    }    ... the rest of the methods throws exception.}為了完整,這里是我的MyIdentityUserpublic class MyIdentityUser{    public string Id {get;set;}    public string UserName {get;set}}并開始_LoginPartial.cshtml@using Microsoft.AspNetCore.Identity@inject SignInManager<MyIdentityUser> SignInManager@inject UserManager<MyIdentityUser> UserManager
查看完整描述

1 回答

?
婷婷同學(xué)_

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊

你返回一個(gè)空字符串作為哈希


public Task<string> GetPasswordHashAsync(MyIdentityUser user, CancellationToken cancellationToken)

{

    return Task.FromResult(string.Empty);

}

但即使是空密碼,也不會(huì)產(chǎn)生空的哈希字符串。最重要的是,使用了不同的算法(可以在 Startup.cs 中配置,添加身份時(shí))。


如果您希望它成功,您將必須從特定密碼返回一個(gè)真實(shí)的計(jì)算哈希,否則它會(huì)識(shí)別輸入的密碼返回一個(gè)不同的哈希,然后是“存儲(chǔ)”的哈希,并導(dǎo)致登錄失敗。


僅僅因?yàn)槟趥卧?實(shí)現(xiàn)用戶存儲(chǔ)并不意味著不會(huì)執(zhí)行哈希驗(yàn)證。


public Task<string> GetPasswordHashAsync(MyIdentityUser user, CancellationToken cancellationToken)

{

    var hash = new PasswordHasher<MyIdentityUser>().HashPassword(user, "asdf");

    return Task.FromResult(hash)

}

可以,但請(qǐng)注意,如果您更改密碼哈希算法,它可能會(huì)失敗,因?yàn)槟趎ew使用它,這意味著它使用密碼哈希的默認(rèn)選項(xiàng)。


查看完整回答
反對(duì) 回復(fù) 2022-06-12
  • 1 回答
  • 0 關(guān)注
  • 170 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)