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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

簡單的 IUserStore,IUserPasswordStore 實現給出了無效的登錄嘗試

簡單的 IUserStore,IUserPasswordStore 實現給出了無效的登錄嘗試

C#
阿晨1998 2022-06-12 11:16:49
我正在試驗 Aspnet Core 2.2,并IdentityUser用我的MyIdentityUser. 當我嘗試登錄時,我得到“無效的登錄嘗試”。為了讓我登錄,我錯過了什么?該ConfigureServices方法使用 my 設置身份,MyIdentiyUser如下MyIUserStore所示:services.AddDefaultIdentity<MyIdentityUser>()    .AddDefaultUI(UIFramework.Bootstrap4)    .AddUserStore<MyUserStore>();通過盡可能謹慎地實現所有方法(我從拋出每個方法開始IUserStore,然后實現被調用的方法),我得到了這個: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 回答

?
婷婷同學_

TA貢獻1844條經驗 獲得超8個贊

你返回一個空字符串作為哈希


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

{

    return Task.FromResult(string.Empty);

}

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


如果您希望它成功,您將必須從特定密碼返回一個真實的計算哈希,否則它會識別輸入的密碼返回一個不同的哈希,然后是“存儲”的哈希,并導致登錄失敗。


僅僅因為您正在偽造/實現用戶存儲并不意味著不會執(zhí)行哈希驗證。


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

{

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

    return Task.FromResult(hash)

}

可以,但請注意,如果您更改密碼哈希算法,它可能會失敗,因為您正在new使用它,這意味著它使用密碼哈希的默認選項。


查看完整回答
反對 回復 2022-06-12
  • 1 回答
  • 0 關注
  • 151 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號