我正在为Asp.net核心3.0 Blazor服务器端应用程序构建一个示例登录剃刀组件。当代码到达SignInAsyc方法时,它看起来只是挂起或锁定,因为代码停止了进一步的执行。我还尝试了切换逻辑,使用PasswordSignInAsync方法得到了完全相同的结果。所有代码都将在该方法之前执行,但随后在执行该语句时冻结。我在这里漏掉了什么?
Razor组件页:
@code {
    Dictionary fieldsetAttr =
        new Dictionary()
        {
            {"class", "form-group" }
        };
    Dictionary usernameAttr =
        new Dictionary()
        {
            {"class", "form-control" },
            {"type", "text" },
            {"placeholder", "Enter your user name here." }
        };
    Dictionary passwordInput =
        new Dictionary()
        {
            {"class", "form-control" },
            {"type", "password" }
        };
    Dictionary buttonAttr =
        new Dictionary()
        {
            {"type", "button" }
        };
    Dictionary invalidAttr =
        new Dictionary()
        {
            {"class", "" },
            {"style", "color: red;" }
        };
    Dictionary validAttr =
        new Dictionary()
        {
            {"class", "" },
            {"style", "color: green;" }
        };
}剃刀组件:
@inject SignInManager signInManager
@inject UserManager userManager
    
        
            Login
            Username
            
            Password
            
            @ButtonText
            @if (errorMessage != null && errorMessage.Length > 0)
            {
                
                    @errorMessage
                
            }
            else if(successMessage != null && successMessage.Length > 0)
            {
                
                    @successMessage
                
            }
        
    
@code {
    string successMessage = "";
    private async Task LoginUser()
    {
        if(!String.IsNullOrEmpty(UserName))
        {
            var user = await userManager.FindByNameAsync(UserName);
            var loginResult =
                await signInManager.CheckPasswordSignInAsync(user, Password, false);
            if(loginResult.Succeeded)
            {
                await signInManager.SignInAsync(user, true);
                successMessage = $"{UserName}, signed in.";
                errorMessage = "";
            }
            else
            {
                successMessage = "";
                errorMessage = "Username or password is incorrect.";
            }
        }
        else
        {
            successMessage = "";
            errorMessage = "Provide a username.";
        }
    }
    [Parameter]
    public Dictionary FormParentAttr { get; set; }
    [Parameter]
    public Dictionary LoginFormAttr { get; set; }
    [Parameter]
    public Dictionary FieldsetAttr { get; set; }
    [Parameter]
    public Dictionary UsernameAttr { get; set; }
    [Parameter]
    public Dictionary PasswordAttr { get; set; }
    [Parameter]
    public Dictionary ButtonAttr { get; set; }
    [Parameter]
    public Dictionary InvalidAttr { get; set; }
    private string UserName { get; set; }
    private string Password { get; set; }
    [Parameter]
    public string ButtonText { get; set; }
    [Parameter]
    public Dictionary ValidAttr { get;set; }
    public string errorMessage { get; set; }
}https://stackoverflow.com/questions/58387683
复制相似问题