IE10でSetAuthCookieが無効である。
問題はこれです。ローカルで認証チケットを設定するテストは問題なく、サーバーに公開した後、アクセスアドレスに以下のような暗号化されたような特殊文字が追加されました。
http://www.example.com/(F(1xe9eXIxPzMALrZu6xd_xiccanJf4m0bo0ceEJ70Mv20XYaMSlA2))/some/path
通常のアドレスのはずです。
http://www.example.com/some/path
私のテスト環境は、win7 64bit、IE10です。
サーバーでのIE8テストも、特定環境では問題があります。Windows Server 2003 64ビット、IE8
両方の環境でアクセスすると、正常なURLが生成されない
長い間私を悩ませてきた非常に奇妙な問題で、以前一度現れて、その後コードが再リリースされて実際に勝手に良くなって、今日また遭遇したので、完全に解決しようと思い、FormsAuthenticationが出た後にようやくテストをするために非常に簡単な例を書きました。クッキー、テストのためのコードです。
FormsAuthentication.SetAuthCookie("1", false)を実行します。
Response.Redirect("Default.aspx") を実行します。
最後に、これらの特殊文字は実は認証チケットであり、クライアントはCookieを受け取らないため、Asp.netのアドレスバーにCookieの情報を書き込んでいることを、マイクロソフトの 認証チケットの原理 を理解した後、どのようにそれを解決するか、そして最終的にGoogleは答えを見つけた:。
これはIE10のバグや
asp.net
4で、IE10ではhttpヘッダーが変更され、そのため
asp.net
4は、クライアントがCookieを有効にしていないと判断し、認証に失敗する。
簡単な解決策は、サイトのルートにブラウザの定義ファイルを追加することです。
手順は以下の通りです。
1. App_Browsers フォルダを追加します。
2. 2. IE10.browser のような "*.browser" のサフィックスを持つファイルを追加します。
3. 以下の内容のファイルを追加します。
<browsers>
<browser refID="Default">
<capabilities><! -- To avoid wrong detections of e.g. IE10 -->
<capability name="cookies" value="true" />
<capability name="ecmascriptversion" value="3.0" />
</capabilities>
</browser>
</browsers>
参考記事 http://www.cnblogs.com/79039535/p/3335121.html
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例