Identityを使用せずにASP.NET Core 2.0アプリケーションでソーシャルログインを設定しています。ASP.NET Core 2.0でソーシャル認証を設定する
Facebook、Google、LinkedInでユーザーを認証し、その情報を受け取るだけです。私はユーザー情報を自分で保存しています。ここで
は私に次のエラーを与えているその私がこれまで何をやったかです:
No authentication handler is configured to handle the scheme: facebook
はここStartup.csファイルの変更です:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
// Added these lines for cookie and Facebook authentication
services.AddAuthentication("MyCookieAuthenticationScheme")
.AddCookie(options => {
options.AccessDeniedPath = "/Account/Forbidden/";
options.LoginPath = "/Account/Login/";
})
.AddFacebook(facebookOptions =>
{
facebookOptions.AppId = "1234567890";
facebookOptions.AppSecret = "1234567890";
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
// Added this line
app.UseAuthentication();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
私は、私、このアクションメソッドを持っています認証のために使用しているプロバイダを特定するためにユーザを送信します。 Facebook、Googleなどがあります。このコードは、うまく動作しているASP.NET Core 1.1アプリからのものです。
[AllowAnonymous]
public async Task ExternalLogin(string provider, string returnUrl)
{
var properties = new AuthenticationProperties
{
RedirectUri = "Login/Callback"
};
// Add returnUrl to properties -- if applicable
if (!string.IsNullOrEmpty(returnUrl) && Url.IsLocalUrl(returnUrl))
properties.Items.Add("returnUrl", returnUrl);
// The ASP.NET Core 1.1 version of this line was
// await HttpContext.Authentication.ChallengeAsync(provider, properties);
await HttpContext.ChallengeAsync(provider, properties);
return;
}
ChallangeAsync
行にヒットしたときにエラーメッセージが表示されます。
私は間違っていますか?
スキーム名では大文字と小文字が区別されます。あなたはFacebookの代わりにFacebookで試してみることができますか? – Pinpoint
あなたが参照しているコードの部分がわかりません。どうぞお分かりですか?ありがとう。 – Sam
ちょうどあなたが話していたことを理解して、あなたはまさに正しいです!!!!!それは 'Facebookは' facebookではない – Sam