Как и в заголовке, у меня проблема с фейсбуком и личностью.Я использовал документацию Microsoft для реализации идентификации и авторизации на Facebook для своего проекта.Я могу войти с личностью, но когда я пытаюсь войти с Facebook, ничего не происходит.Мой клиент получает cookie ("identity.external"), но View не видит, что пользователь в сети.
В View у меня есть метод:
@if (User.Identity.IsAuthenticated)
Мой метод контроллера для входа в Facebook
public IActionResult SignIn(String provider)
{
return Challenge(new Microsoft.AspNetCore.Authentication.AuthenticationProperties { RedirectUri = "/" }, provider);
}
моя начальная конфигурация
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContextPool<StoreContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("StoreDatabase")));
services.AddIdentity<IdentityUser, IdentityRole>().AddEntityFrameworkStores<StoreContext>();
services.AddMemoryCache();
//session
services.AddDistributedMemoryCache();
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
services.AddSession(options =>
{
options.Cookie.Name = ".MyName";
options.IdleTimeout = TimeSpan.FromMinutes(30);
options.Cookie.HttpOnly = true;
// Make the session cookie essential
options.Cookie.IsEssential = true;
});
services.AddHttpContextAccessor();
//session
services.AddAuthentication(options =>
{
//options.DefaultChallengeScheme = FacebookDefaults.AuthenticationScheme;
//options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
//options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddFacebook(options =>
{
options.AppId = "CODE";
options.AppSecret = "CODE";
}).AddCookie();
services.AddMvc(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
}
).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
Когда я раскомментирую
//options.DefaultChallengeScheme = FacebookDefaults.AuthenticationScheme;
//options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
//options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
Тогда Facebook работает, но личность не работает.
Спасибо!