7

AppHarbor でホストされており、memcacher アドオンを使用して、ドキュメントに記載されているようにセットアップします。

<sessionState cookieless="false" regenerateExpiredSessionId="true" mode="Custom"
          customProvider="MemcachedSessionProvider" xdt:Transform="Insert">
  <providers>
    <add name="MemcachedSessionProvider"
         type="MemcachedProviders.Session.SessionStateProvider,MemcachedProviders"
         dbType="none" />
  </providers>
</sessionState>

次の方法でのみ再現できる問題が発生しています。

  1. iOS Safari (または Twitter iPhone アプリの組み込み Webkit ブラウザー) 内の appfail.net への Twitter 短縮 URL: http://t.co/6tRXopEJ
  2. [Run Demo] ボタンをクリックすると、デモ アカウントでユーザーが自動的にサインインします。

At this point the server issues a 302 redirect to an invalid URL, eg: http://appfail.net/(F(FckQ4UX0zD_WSxk_adpkk3YysHsYQS4TSVpljxmswyBqEAZ1q-YhW4KePrpYQfJ4KlLGaiyje_TbpeSARVyI8LioQ7Jp5EIc0Zm9u99IqRRkkoMh_wr-jrsrvje4J7KpUt1n87xEMzMeqHzpMz9ksm42IqNnf3F9B6GBwrnuA5EY_YsV0))/Applications

URL には、IIS が Cookie なしのセッションに使用するのと同じ形式の SessionID が含まれているようです。IISはUserAgentに基づいてセッションレスCookieを使用するように構成できるため、これも理にかなっています-したがって、なぜモバイルサファリでのみ再現するのですか(ただし、なぜt.co/リダイレクトでのみ発生し、いつ発生しないのかはわかりません)ページを直接ロードする)

奇妙なことに、Cookie を使用しないセッションがオフになっています。上記のセッション状態でわかるように。また、「cookieless="UseCookies"」という設定でこれを試しました...運が悪いです!

ロギングを追加し、実行中にシステムが「UseCookies」として構成されていることを確認しました。

では、RedirectToAction() を使用するだけで、どうすればユーザーを Cookie のない URL にリダイレクトできるのでしょうか?

これがカスタム セッション状態プロバイダー (MemcachedProvider) に関連している可能性があるかどうか疑問に思っています。それとももっと基本的なものですか?

ありがとうサム

4

2 に答える 2

7

ASP.NET クライアント機能の検出に問題がある可能性があります。この質問を確認してください: iPhone UIWebView を使用する場合の Asp.Net フォーム認証

于 2012-06-12T16:29:25.643 に答える
2

Microsoftは 2011 年 9 月に Hotfix をリリースしました。これにより、私が Windows 8 Preview Release の IE10 で抱えていた同様の問題が解決されました。

于 2012-06-20T18:33:41.303 に答える