Tôi đang tạo ứng dụng ASP.NET 5 MVC 6 sẽ chỉ sử dụng xác thực Facebook/Google. Tôi cũng đang cố gắng sử dụng phần mềm trung gian cookie mà không có toàn bộ ASP.NET Identity - sau bài viết này: https://docs.asp.net/en/latest/security/authentication/cookie.htmlTùy chọn 'SignInScheme' phải được cung cấp
Vì vậy, tôi bắt đầu với một ứng dụng trống không có xác thực, sau đó thêm Microsoft.AspNet.Authentication.Cookies và Microsoft.AspNet.Authentication.Facebook NuGet gói để có một cách tiếp cận rất tối giản mà tôi không bao gồm bất cứ điều gì mà tôi không cần.
Tôi đã thêm mã sau vào Cấu hình trong Startup.cs nhưng tôi nhận được lỗi "Tùy chọn SignInScheme phải được cung cấp". Bất kỳ ý tưởng những gì tôi đang mất tích?
app.UseCookieAuthentication(options =>
{
options.AuthenticationScheme = "MyCookieMiddlewareInstance";
options.LoginPath = new PathString("/Accounts/Login/");
options.AccessDeniedPath = new PathString("/Error/Unauthorized/");
options.AutomaticAuthenticate = true;
options.AutomaticChallenge = true;
});
app.UseFacebookAuthentication(options =>
{
options.AppId = "myFacebookAppIdGoesHere";
options.AppSecret = "myFacebookAppSecretGoesHere";
});
Cảm ơn bạn. Một câu hỏi tiếp theo: là "MyCookieMIddlewareInstance" tên của cookie của tôi? Tôi sẽ phải tạo một cookie tạm thời để người dùng đăng ký sau khi được Facebook/Google xác thực. Sau đó, tôi có sử dụng tên cookie khác không? Nếu vậy, tôi đặt tên cookie đó ở đâu? – Sam
Không, 'AuthenticationScheme' không ảnh hưởng đến tên cookie, đó là một định danh nội bộ hoàn toàn. Để thay đổi tên cookie, bạn có thể sử dụng thuộc tính 'CookieName'. – Pinpoint
Trong trường hợp bạn chưa thiết lập một AuthenticationScheme rõ ràng, nó là CookieAuthenticationDefaults.AuthenticationScheme – Kugel