我注册了身份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以同时使用两者。
答案 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>
希望这对您有帮助...