0

.NET Framework 4.0 を使用し、Windows Server 2003 IIS で展開された MVC 4 Web サイトがあり、iPhone (特に Chrome ブラウザー) でのフォーム認証に問題があります。

シナリオ

  1. I iPhone で Chrome アプリを開きます。
  2. 自分の Web サイトにアクセスし、[ログイン] をクリックします。フォーム認証を使用して、Web サイトに正常にログインできました。
  3. Web サイトを開いたまま 5 分間何もせずに放置します。
  4. iPhone に戻り、自分の Web サイトのリンクをクリックします。ログアウトしました。
  5. 以前と同じようにログインしようとします。ログイン プロセスが機能しません。エラーはありません。私のホームページに移動するだけです (これは、ログインが成功したときに行うべきことです)。

その他の情報

  1. 一般的に、iPhone の Safari はこの問題に悩まされていないようです... Chrome で問題が発生した後、Safari でも問題が発生するようです。
  2. 解決策は、すべてのキャッシュ/Cookie をクリアして、20 分ほど後に再試行することです。
  3. 私のタイムアウトは実際には 30 分に設定されているため、Chrome でこの問題がログアウトすることはありません。
  4. 私はこの投稿(iPhone UIWebViewを使用する場合のAsp.Net Forms Authentication)を調査し、試しました:-

    (a) web.config の UseCookies 設定

    (b) .browser 構成ファイル

    (c) web.config の MachineKey

違いはないようで、Chrome のログインは 1 ~ 2 分しか続かないようです。

コード

フォーム認証 Cookie を作成するコードは次のとおりです。

FormsAuthentication.Initialize()
Dim fat As FormsAuthenticationTicket = New FormsAuthenticationTicket(1, UserID, DateTime.Now, DateTime.Now.AddMinutes(FormsAuthentication.Timeout.TotalMinutes), False, Roles, FormsAuthentication.FormsCookiePath)
Response.Cookies.Add(New HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(fat)))

この問題を解決する方法について何か提案はありますか?

4

1 に答える 1

0

私は自分の問題を理解しました - それはばかげた間違いでした。Forms セクションではなく、web.config の SessionState キーに UseCookies を入力しました。

于 2013-05-29T12:50:05.657 に答える