Sebelumnya, saya bisa memanggil info.ExternalIdentity.FindAll("FacebookAccessToken").

Di AspNet.Identity versi 3, saya tidak dapat menemukan token akses yang disimpan di mana pun menggunakan SignInManager. Saya juga tidak dapat menggunakan FindAll lagi dari ExternalIdentity.

Apakah saya masih dapat mengambil Token Akses Facebook dalam proyek ASP.Net MVC6 saya?

3
Jonas Arcangel 21 Mei 2015, 13:31

1 menjawab

Jawaban Terbaik

Anda dapat mengakses token akses dengan memasukkannya ke dalam koleksi klaim.

Anda harus memanfaatkan pemetaan respons Facebook ke objek ClaimsIdentity melalui acara FacebookAuthenticationNotifications OnAuthenticated. Dalam file Startup.cs:

services.Configure<FacebookAuthenticationOptions>(options =>
{
    options.AppId = Configuration["Authentication:Facebook:AppId"];
    options.AppSecret = Configuration["Authentication:Facebook:AppSecret"];
    options.Scope.Add("user_birthday");
    options.Notifications = new FacebookAuthenticationNotifications
    {
        OnAuthenticated = async context => {

            var accessToken = context.AccessToken;
            var identity = (System.Security.Claims.ClaimsIdentity)context.Principal.Identity;
            identity.AddClaim(new System.Security.Claims.Claim("FacebookAccessToken", context.AccessToken));
        }
    };
});

Kemudian Anda akan dapat menemukan token akses di ExternalIdentity.

2
Lybecker 2 Juni 2015, 17:53