- - PR -
統合Windows認証後の匿名アクセス可能ページでの動作
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-25 17:38
お世話になります。
長文になりますが、ご回答頂けると幸いです。 統合Windows認証と匿名アクセス可能なページが混在するWebApplicationを作成しておりますが、 特定の場合にのみ、画面上のForm要素(asp:TextBox, asp:Hidden等)の値がサーバ側に 渡されないという問題が発生しています。 (Application_OnBeginRequestにてRequest.Paramsを全出力して確認。正常動作した場合には ctl00$ContentBody$search等が存在するが、問題が発生した場合にはこのキーは含まれない) その為、ボタンを押下したとしてもサーバ側にてbutton_Clickが呼び出されず、 単に再読み込みをしたような動作となってしまっています。 環境としては以下のようになります。 アプリケーションサーバ:Windows 2003 Server + ASP.NET 2.0 データベースサーバ:Windows 2003 Server + Microsoft SQL Server2005 基本的に匿名アクセスを可能としていますが、1ファイルのみ統合Windows認証による 認証を掛けています。 問題が発生する条件は以下の通りになります。 1.統合Windows認証を行うファイル(auth.aspx)から匿名アクセス可能なファイル(normal.aspx)に 遷移し、normal.aspxにて画面上のテキストボックスに値を入れてボタンを押下した場合。 (auth.aspxのPage_Loadでnormal.aspxに遷移しています。Response.Redirect, Server.Transfer共に問題が発生) 2.両方が匿名アクセス可能、もしくは両方が統合Windows認証であれば正常な動作 3.normal.aspxに直接アクセスした場合には正常動作 4.http://サーバのIP/アプリケーション名/auth.aspxでアクセスした場合には問題が発生し、 http://サーバ名/アプリケーション名/auth.aspxでアクセスした場合には正常な動作 ただし、http://完全修飾ドメイン名/アプリケーション名/auth.aspxでアクセスした場合には IPで指定した場合と同様の問題が発生します。 現在までの調査結果は以下のようになります。 ・アクセス方法によっては正常に動作するため、ロジック部には問題無いかと思っています。 ・4番の条件から、セッションクッキーが渡されていないのかとも考えましたが、 Application_OnBeginRequestにてRequest.Cookiesをログに出力したところ、 ASP.NET_SessionIdは問題なく渡されているようです。 また、auth.aspxのPage_LoadにてSessionに保存した値がnormal.aspxのPage_Loadで 参照できることも確認できました。 | ||||||||
|
投稿日時: 2007-09-25 20:29
1ファイルだけ統合Windows認証による認証をしている、とのことですが、どのようにして
これを実現しているのでしょう。。。 IISでの設定でしょうか? 4番の状況をみると、利用しているのがIEだとすると、サーバ名のときはイントラネットの セキュリティ、IPおよび完全修飾ドメイン名の場合はインターネットのセキュリティで 動いているのではないかと思われます。 もしかしてこのあたりがいたずらする可能性はないでしょうか。。。 | ||||||||
|
投稿日時: 2007-09-25 21:32
返信ありがとうございます。
IISにて、アプリケーション全体を匿名アクセス可能にした後に、auth.aspxのプロパティで 個別に統合Windows認証に指定しています。
確認してみました・・・が、結果は芳しくないようです・・・ 1.イントラネットのセキュリティをインターネットと同じ「中」に設定 →http://サーバ名/では正常動作 →http://IPアドレス/では同様の不具合 2.http://IPアドレス/を信頼されたサイトに登録 →変化無し 3.IEオプションのプライバシータブでCookieを全て受け入れるように設定 →変化無し 1番の変更を行うことで同じセキュリティで動作しているとは思うのですが、 結果は変わらないようです。 | ||||||||
|
投稿日時: 2007-09-26 07:07
IEにはプロキシの設定はありませんか?
あとはなんだろう。。。 | ||||||||
|
投稿日時: 2007-09-26 22:24
プロキシの設定は特に行っておらず、直接接続となっています。 前回の投稿後に追加で試した所、以下のような条件がわかりました。 ・Page_LoadイベントにおけるResponse.Redirect, Server.Transferで遷移すると問題が発生する(前出の通り) ・Page_Loadイベントでは何もせず、HTMLが表示された後に<A>タグやJavaScriptのlocation.href=normal.aspxに よって遷移した場合にも同様の問題が発生する。 また、(無理やりな)解決を見ましたので、以下に記載します。 http://サーバのIP/アプリケーション名/auth.aspxにアクセスし、遷移時は http://サーバ名/アプリケーション名/normal.aspxに絶対パスでアクセスします。 サーバ名部分の表記を変更(IPとサーバ名、もしくはDNSへ2レコード追加する等)し、絶対パスでアクセスすることで 3番の動作と同じことになり、normal.aspxの機能が正常に動作するようになりました。 最終的には、ユーザから見たときにアクセス先が変化しないように、 ・pre.aspx = 匿名アクセス & サーバIPでアクセス auth.aspxへ自動遷移 ・auth.aspx = 統合Windows認証 & サーバ名でアクセス normal.aspxへ自動遷移 ・normal.aspx = 匿名アクセス & サーバIPでアクセス としました。 こんな無理やり&セッションが切れる方法でも一応は解決方法ということで載せておきます。 調査は続けるつもりですが、そろそろ思考がループしてしまっているので 何かわかりましたら教えて頂けると幸いです。 |
1