ASP.NET Identity便利ですよね。
ASP.NET MVCプロジェクトの初期テンプレートから認証がついていたので、それをベースに開発を始めたので、開発コストがかなり削減できました。
SNS認証もさくっと追加できてしまいます(この辺もどこかで紹介できれば)。
が・・・一点はまったポイントがありました。
Webなどのサンプルを探すとSNS認証終了後に以下のようにSNSのデータを取得するコードが以下のように紹介されています。
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync(); if (loginInfo == null) {
正常にログインした状態でもこのloginInfoがnullになることがあります。
(松崎さんのブログを見た感じ記述場所というかタイミングの問題のようですが、はまりどころですね)
自分の環境だとなかなか再現できずに困りましたがクッキーを削除した状態でテストすると再現。
ASP.NET Identityをちゃんと理解して使えば回避できそうな気もしますが、以下のページを参考に対応。
http://stackoverflow.com/questions/19564479/mvc-5-owin-facebook-auth-results-in-null-reference-exception
var authResult = await AuthenticationManager.AuthenticateAsync(DefaultAuthenticationTypes.ExternalCookie);
という形でデータを取得するとうまくいきました。
リリースが近い状態で発覚した問題だったので焦りました。
という問題解決にあたり色々な方々に相談に乗っていただきました。感謝!!
Please give us your valuable comment