如何在Blazor默认身份UI中添加用户名支持

时间:2019-07-20 07:34:42

标签: asp.net-identity blazor blazor-server-side

我注册了身份UI如下:

services.AddDbContext<IdentityUIContext>(options => 
            options.UseSqlServer(
                Configuration["Data:SportStoreIdentity:ConnectionString"]));
        services.AddDefaultIdentity<IdentityUser>(opts => { opts.SignIn.RequireConfirmedAccount = true;  })
            .AddRoles<IdentityRole>()
            .AddEntityFrameworkStores<IdentityUIContext>();

但是,当我运行该应用程序并导航到“注册”时,该表单仅包含一个用于Email的文本框,但是我想在我的应用程序中同时使用UserName和Email。如何配置Identity UI以同时使用两者。

1 个答案:

答案 0 :(得分:0)

首先,这与Blazor无关。尽管您在Blazor中使用Identity UI进行身份验证,但这全在Razor Pages的域中。

身份系统中的

电子邮件和用户名可以互换使用。的确,它们是数据库中保存相同信息的两个字段。添加用户时,提供的电子邮件也会保存在用户名字段中。当然,您可以根据自己的喜好进行更改。例如,您可以在数据库中添加一个字段来保存 DisplayName

无论如何,您可以像在Razor Pages应用程序中那样设置“注册”页面(以及其他页面),然后添加如下用户名:

Register.cshtml

<div class="form-group">
                <label asp-for="Input.Email"></label>
                <input asp-for="Input.Email" class="form-control" />
                <span asp-validation-for="Input.Email" class="text-danger"></span>
            </div>

 <div class="form-group">
                <label asp-for="Input.UserName"></label>
                <input asp-for="Input.UserName" class="form-control" />
                <span asp-validation-for="Input.UserName" class="text-danger"></span>
            </div> 

希望这对您有帮助...