5

ASP.NET MVC 4 でシンプル メンバーシップ プロバイダーを使用し、Facebook クライアントを使用して Facebook ログイン サポートを提供しています ( http://www.asp.net/mvc/overview/getting-started/using-と同様)。 oauth-providers-with-mvc )。

これでうまくいきましたが、セッションは常に 1 日以内にタイムアウトになり、ユーザーがログインしてサービスを 1 回だけ使用できるように、ログインを持続させたいと考えています。

すぐに使用できるExternalLoginCallback関数で、createPersistentCookieパラメータを true に設定しようとしていますが、ログインが維持されません。これが私が行っている呼び出しです:

OAuthWebSecurity.Login(result.Provider, result.ProviderUserId, createPersistentCookie: true)

永続的なログインを行うには、フォーム認証 Cookie を手動で設定する必要がありますか? または、すぐに使える Facebook ログイン機能を利用しながら、これを行う別の方法はありますか?

4

1 に答える 1

3

ASPXAUTH Cookieは、ユーザーが認証されているかどうかを判断するために使用されます。firebug またはその他の Web デバッグ ツールを使用して有効期限を追跡できます。プロジェクトでは、Cookie は ExternalLoginCallback に設定されています。以下は、Cookie の有効期限のタイムアウトを設定する画面の例です。

それを機能させるために私がしなければならなかったことは、SSLを使用し、web.configでCookieのタイムアウトを変更することだけでした. 次に、タイムアウトを 1 分に設定した例を示します。requireSSL を true に設定することを忘れないでください。

<authentication mode="Forms">
   <forms loginUrl="~/Account/Login" timeout="1" requireSSL="true"/>
</authentication>

しかし、あなたの場合、Facebookからの短いライブアクセストークンに問題があると思います(デフォルトは約2時間)。問題がアクセス トークンにある場合は、アクセス トークンの有効期間を延長する方法をリンクします。

于 2013-04-06T13:13:06.870 に答える