首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Blazor服务器端应用程序的SignIn无法工作

Blazor服务器端应用程序的SignIn无法工作
EN

Stack Overflow用户
提问于 2019-10-15 13:19:21
回答 1查看 5.6K关注 0票数 7

我正在为Asp.net核心3.0 Blazor服务器端应用程序构建一个示例登录剃刀组件。当代码到达SignInAsyc方法时,它看起来只是挂起或锁定,因为代码停止了进一步的执行。我还尝试了切换逻辑,使用PasswordSignInAsync方法得到了完全相同的结果。所有代码都将在该方法之前执行,但随后在执行该语句时冻结。我在这里漏掉了什么?

Razor组件页:

代码语言:javascript
运行
复制
@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;" }
        };

}

剃刀组件:

代码语言:javascript
运行
复制
@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; }

}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58387683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档