これを標準の Web フォームで機能させるにはどうすればよいでしょうか?
私がやろうとしているのはAspNetUserClaims
、Facebook (または他のサービス) から返されたクレームからテーブルを作成することです。以下のコードの OnAuthenticated で値が返されるのを確認できます。これらのクレームを現在ログインしているユーザーのコンテキストに追加するにはどうすればよいですか?
現在、OnAuthenticated
火災の後、組み込みの例が提供するように、明らかにページ (RegisterExternalLogin.aspx) に戻ります。ただし、クレームはなくなり、Facebook へのログインのコンテキストはなくなりました。
MVC を使用せずに、現在ログインしているユーザーのコンテキストに基づいて、Facebook からのクレームを AspNetUserClaims テーブルにどのように入力しますか?
var fboptions = new FacebookAuthenticationOptions();
fboptions.AppId = "xxxxxxxxxxxxxxxxxxx";
fboptions.AppSecret = "yyyyyyyyyyyyyyyyyyyyyy";
fboptions.Scope.Add("email");
fboptions.Scope.Add("friends_about_me");
fboptions.Scope.Add("friends_photos");
fboptions.Provider = new FacebookAuthenticationProvider()
{
OnAuthenticated = (context) =>
{
foreach (var v in context.User)
{
context.Identity.AddClaim(new System.Security.Claims.Claim(v.Key, v.Value.ToString()));
}
context.Identity.AddClaim(new System.Security.Claims.Claim("FacebookAccessToken", context.AccessToken));
return Task.FromResult(0);
},
};
app.UseFacebookAuthentication(fboptions);