AccountController.csのExternalLoginConfirmation
メソッドでは、新しいユーザーがuser = new ApplicationUser { UserName = model.Email, Email = model.Email }
に従って作成されます。loginProviderの名前を取得する方法ExternalLoginConfirmationメソッドのASP.Net MVCコア
私はUserName
プロパティでログインプロバイダ名を前に付ける新しいユーザーを作成したい:
var loginProviders = _signInManager.GetExternalAuthenticationSchemes().ToList();
var provider = loginProviders[index].DisplayName.ToString();
がどのように私はindex
を選択することができます。
user = new ApplicationUser { UserName = provider ?? model.Email + model.Email, Email = model.Email };
私の考えは、そのようにやってみることです返品するloginProvider
? 残念ながらvar provider = loginProviders.DisplayName.ToString();
は機能しません。認証のための
私のWebサイトをテストしている間、私は私が私の資格情報を使用し
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
});
app.UseGoogleAuthentication(new GoogleOptions()
{
ClientId = Configuration["Authentication:Google:ClientId"],
ClientSecret = Configuration["Authentication:Google:ClientSecret"]
});
app.UseMicrosoftAccountAuthentication(new MicrosoftAccountOptions()
{
ClientId = Configuration["Authentication:Microsoft:ClientId"],
ClientSecret = Configuration["Authentication:Microsoft:ClientSecret"]
});
app.UseFacebookAuthentication(new FacebookOptions()
{
AppId = Configuration["Authentication:Facebook:AppId"],
AppSecret = Configuration["Authentication:Facebook:AppSecret"]
});
を使用しています。 UserName = model.Email, Email = model.Email
とするとエラーになります。 私は
services.AddIdentity<ApplicationUser, IdentityRole>(opts => {
opts.User.RequireUniqueEmail = false;
})
を設定することにより、同じ電子メールを使用することができますしかし、私は同じ
UserName
任意のアイデアを持っていないことができますか?
ありがとうございます。