1

SL 認証に関していくつか問題があります。

私はWCF RIAサービスを使用してデータベースにアクセスし、認証とデータベースへのデータの読み取り/書き込みを実装しています。これで、カスタム認証サービスとカスタム ロール プロバイダーができました (最後のデータベースが例外を返さないため)。Roles Provider クラスでは、「IsUserInRole(string username, string roleName)」というメソッドを 1 つだけ実装しました。理由はわかりませんが、他のすべてのメソッドはプロジェクトで使用されていません。

1. web.configファイルには、認証に関する次のテキストがあります。

<authentication mode="Forms">
    <forms name=".ASPXAUTH" timeout="1440"/>
</authentication>

タイムアウトを 1440 に設定しました (認証 Cookie の有効期限も +30 日です)。とにかく、アプリケーションは6 ~ 7 分のアイドル状態で認証を失いました。どうして???また、ホスティング設定でも同様の設定は見つかりませんでした。

2. Fiddler 2 によって、奇妙な Cookie 設定が表示されます (データベース情報を取得する場合のみ)。

Set-Cookie: .ASPXROLES=; expires=Tue, 12-Oct-1999 04:00:00 GMT; path=/; HttpOnly

この Cookie を格納するクラスまたはメソッドを見つけようとしましたが、何も見つかりませんでした。「ファントム」Cookie と同じように ---... 認証タイムアウトに関する私の主な問題の 1 つだと思います。それは何ですか、どうすれば変更できますか?

3.適切な解決策 ( Silverlight RIA サービス - クライアント認証セッション タイムアウトを適切に処理する方法) を見つけましたが、例外をキャッチするのに役立つだけです。次の方法を使用する場合:

WebContext.Current.Authentication.LoadUser(Application_UserLoaded, null);

アプリケーションの起動時には、すべて問題ないように見え、ユーザー IDは Cookie から読み込まれます。しかし!6 ~ 7 分のアイドル状態の後にこのメソッドを使用しようとすると、アプリケーションは魔法のようにナビゲーション ページを「LoginPage」に変更します。私は知りませんし、これがどのように行われるかについての考えもありません。しかし、それは本当です。「デスクトップ」ページにいました。次に、アイドル後にユーザーを「再ログイン」しようとしましたが、フレームが別のページに変更され、(前のページからの) すべてのデータが失われました... :(だから、なぜ「LoadUser」メソッドがログインウィンドウで別のページに私を変えるのですか?ユーザーIDを再ログインするだけではありませんか?

4

0 に答える 0