0

ユーザーがasp.netのoauthテンプレートでログインしたときに、Facebookクライアントのアクセストークンを取得しようとしています. しかし、インターネットで見つけたいくつかの方法を試したところ、アクセストークンを取得できませんでした。

AuthenticationResult result = OpenAuth.VerifyAuthentication("RegisterExternalLogin.aspx");                
string actok = result.ExtraData["accesstoken"];

この試行は成功しませんでした。アクセストークンの取得方法を教えてください。

4

1 に答える 1

1

10 日が経過したにもかかわらず、誰もあなたの質問に回答していないようです。

asp.net の OAuth テンプレートを使用しているとのことでした。だから私はあなたがラインを見ていると思います

AuthenticationResult result = OpenAuth.VerifyAuthentication("RegisterExternalLogin.aspx"); 

AccountController.cs の ExternalLoginCallback() アクションで

私が知る限り、あなたの構文は正しいです。実際、自分でもテストしましたが、うまくいきました。同じプロパティにアクセスする別の方法を試すことができると思います

String myaccesstoken_value1 = result.ExtraData.Values.ToArray()[5];

これにより、result.ExtraData["accesstoken"] と同じ結果が得られます。

それでもうまくいかない場合は、ここでの構文ではなく、認証自体に問題があると思います。VS2012 Express を使用していると仮定しているので、デバッガーを使用して、変数「結果」にどのような値が存在するかを確認してください。空の場合は、2 番目のステートメントがエラーになった理由を示しており、この時点に到達する前にコードに問題があることも示しています。

また、テスト中は、Facebook などの OAuth プロバイダーを使用してアプリにログインすると、Web サイトからログアウトしても facebook にログインしたままになることに注意してください。実際には facebook.com に移動して、そこでもログアウトをクリックする必要があります (リモート ログアウトを行うために asp.net アプリに追加のコードを記述しない限り)。これがあなたの状況に当てはまるかどうかはわかりませんが、注意してください。

これが役に立ったら投票してください。

于 2013-06-16T00:46:48.590 に答える