こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

ASP.NETの環境について

ASP.NETについて、知識が無いので教えてください。

某システムはASP.NET上で動きます。
その同じWEBサーバー上に、新たにxxxx.aspxファイルをおき、
URLにダイレクトで、追加したxxxx.aspxを指定して動かしたいのですが
どうしても動きません。
どう動かないのかというと、某システムの初期画面が強制的に表示されてしまいます。
(追加したファイルにalert()など入れてみたのですが、表示しません)
このような設定がASP.NETではできるのでしょうか?
WEB.configなどで???

どうしてもワンクッション、間に処理を入れて
某システムを動かしたいのです。

何か方法は無いでしょうか?
よろしくお願いいたします。

投稿日時 - 2015-08-31 11:58:12

QNo.9039624

すぐに回答ほしいです

質問者が選んだベストアンサー

回答No.1 です。

> そうですよね、純粋にパラメータだけで動いてるんですけど、
> なんでF5連続押下で、ログイン画面に行ってしまうのか???

この問題が発生するのは、POST でログインした時だけでしょうか? もし、B システムに普通にログインした場合でも発生するのであれば、それは POST ログインの問題ではなくB システム自体の問題ですよね。

> ###F5 押下の動作が GET と POST で違ったりしますけどね
> すみません、この辺りをもう少し細かく教えていただけないでしょうか?

「更新(F5)を押した際に情報を再送信しないと更新できません」もそうですし、サーバ側のプログラムの作り方によって GET, POST の処理が異なってしまうこともあります。ここはどのように実装しているかによって違うので、一般解があるわけではありません。

> ポストバック後に同じページにリダイレクトしてみるか

これをするには、B システム自体を修正する必要があります。外部からファイルを追加してどうにかできるものではありません。

上にも書きましたが、まずは POST ログインの問題なのか、B システム自体の問題なのかをきちんと確認すべきかと思います。B システム自体の問題であるならば(普通にログインしても発生するのであれば)、質問者さんができることは何もありません。開発会社に『普通にログインしても、こういう現象が起こる』と問い合わせることになるでしょう。

投稿日時 - 2015-09-02 21:37:51

お礼

shitaba さん、ありがとうございます。

#この問題が発生するのは、POST でログインした時だけでしょうか? もし、
#B システムに普通にログインした場合でも発生するのであれば、それは
#POST ログインの問題ではなくB システム自体の問題ですよね。

これは私の中でも想定内です。
まだ詳細を聞いていないので先行調査のつもりで質問させていただきました。
Bシステムの問題であれば、私の手から離れるので、それはそれはいいのですが。^^;


予断ですが、今調べていたら
XMLHttpRequest で クエリ非表示でGETパラメータを$_GETで取得できた、
というサイトを見ました。
「おっ!」と思ったのですが $_GETはphpなんですね。
phpをインストールするわけにはいかず、残念。

担当者が getじゃないと無理なのかも・・・のような話をしていて
もしかしたら私のところに話は来ないまま、
  GETに戻して運用してください
になる可能性も有るかもしれません。
それはそれで良いですが。

結構急いでいたと思ったのですが、そうでもなさそうなので一旦質問を閉じたいと思います。
今回もかなり勉強になりました。
ありがとうございました。

投稿日時 - 2015-09-03 12:22:21

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(3)

回答No.1 です。

これは B システムのログイン機構の問題なので、私には回答しかねます。
が、いくつか思ったことだけ。

> 私の推測ですが、もしかしてセッション登録をしてないからログイン
> 情報が消えた? やはりaspを入れて、セッション登録しないとダメ?

今回 B システム側からは GET で呼び出す方法を開示してもらったのですよね。その時に『GET で呼び出す前にセッション登録をしてください』とか『これまで使っていた asp ファイルの処理が必要です』と言われましたか? もし、言われていないのであれば、純粋にパラメータを渡すだけで良いかと思いますけどね。

また、そもそも B システムは POST でのログインをサポートしているのですか? GET ができるから、POST の動作も保障されると短絡的に考えるのは危険ではないかと思いますけどね (例えば F5 押下の動作が GET と POST で違ったりしますけどね)。

投稿日時 - 2015-09-01 21:16:48

補足

shitaba さん、調べていくうちに。。。

ASP.NET Webフォームではポストバックが頻繁に使われるのでPOSTだと回避不可能では? みたいにことにたどり着きました。

これは「更新(F5)を押した際に情報を再送信しないと更新できません」と表示された場合の回答でしたが、同じようなことですよね?

で、
・頑張ってGETのみで実現するか、
・ポストバック後に同じページにリダイレクトしてみるか
ということですが、GETはダメなので
同じページにリダイレクト・・・
この方法は、(今回の場合)できるんでしょうか?
これはどんなことなのか調べてるのですが、
自分に当てはめるとなかなか難しく、聞いてしまってすみません。m(__)m

投稿日時 - 2015-09-02 16:19:11

お礼

shitaba さん、ありがとうございます。

打ち合わせにはまだ呼ばれていません。^^;

そうですよね、純粋にパラメータだけで動いてるんですけど、
なんでF5連続押下で、ログイン画面に行ってしまうのか???

想像ですが、F5連続押下は、「検索画面」です。
ログインすると、その検索画面が表示されましたから。
かなり膨大なデータ量の検索だと思いますので押したくなる気持ちはわかります。


Bシステムさんは協力的でないそうで、
GETで渡すURLを教えてもらっただけのようです。

他には特に言われていません。
前バージョンのとき、弊社でシングルサインオンもどきを入れた際、セッション登録を追加していたのですが、
それは二重起動を防ぐために必要だっただけ...と言ってました。
(その後、他の方法で二重起動はできないようにしました)


前バージョンではPOSTでログインで動いていました。
今回もPOSTでとりあえず成功しています。
Web.Configの、私のわかるところだけ見るとGET,POST・・の記述はありました。

1回くらいでは現象は発生しないのだと思います。
(実際には8回で発生すると言われましたそうです)



###F5 押下の動作が GET と POST で違ったりしますけどね

すみません、この辺りをもう少し細かく教えていただけないでしょうか?

投稿日時 - 2015-09-02 14:21:54

おそらく xxx.aspx で対応するのは不可能です。config をいじっても無駄でしょう。

アイディアとしては
・ASP.NET を使わない方法、例えば単純な html とか xxx.asp でやる
・システムを動かしている仮想ディレクトリとは別のディレクトリに作る
などが考えられますが、そもそも何をしたいのかが全くわからないので、正直回答しようがありません。

投稿日時 - 2015-08-31 22:20:58

お礼

shitaba さん、ありがとうございます。
判りづらくてすみません。

asp、aspxの違いも判らないのですが
asp.netじゃなくてもaspファイルは動くのですか?


#流れを少し説明させていただきます。

二つのパッケージシステムがあり(仮にAシステム、Bシステム)、
シングルサインオンで、AからBを起動したいそうです。
AもBも変更することは出来ないので、可能な方法をA社に提示するだけです。
(BシステムはASP.NET、Aシステムは不明、ただしJavaのよう)

aspxを間に絡め、情報をPOSTで渡し、さらにセッション情報の書き込みもaspで行っていました。

Aシステム → xxx.aspx → xxx.asp → Bシステム

(ここまでは前任の誰かが作成。aspx,aspファイルはBシステムと同じフォルダーに有り。なんでaspx.asp二つあるのかは誰にも不明。ただ知識のある人が簡単に2日くらいで作ったとか。→その人はもういない)



今回、Bシステムがバ-ジョンアップされ、かなり変更(パラメータなど)があったのでBシステム開発元に引き継ぐ情報を教えてもらったそうです。
それはGETで渡す方法でした。
直接AからBに指定のURL(GET情報付き)をなげれば正常に動きます。
が、それをPOSTに変更することが今回の私の作業です。
※POSTで渡す方法を聞けばいいだけ! という回答は無しでお願いします。

前回を真似てaspxなどを作成し、
Bと同じフォルダーにaspやaspxファイルを入れたのですがそのファイルが動かないのです。
Bシステムのログイン画面になるばかり。
同じIISに別のサイトをたて、そこにaspx,aspファイルを入れてBシステムになげても、正常にログインできない(Bシステムで「不正な情報」とのエラー)。。。

対処として、Aから直接html(POST)でBシステムに飛ばすことで
一応正常に動作させることが出来ました。
(セッション登録なしで了解してもらいました)


が、Bシステムで「F5」を複数回押すとログイン画面にもどってしまうという
申告があったのです。
(まだ詳細は聞いていません。明日打ち合わせ?!)


私の推測ですが、もしかしてセッション登録をしてないからログイン情報が消えた?
やはりaspを入れて、セッション登録しないとダメ?
どうやってaspファイルを動かせばいいの?
と、今から気をもんで質問してしまいました。
asp.netがよくわからないので、何でバージョンアップしたら、同じサイトに新たに追加したファイルは動かないのかなーと。
無視して初期ログイン画面になってしまうので、動かないというより、撥ねてる?


aspx、aspファイルがB上で動かせれば解決かな?
htmlでセッション登録が出来れば解決かな?
他に方法は???
と、まだ詳細を聞いていないのに、頭がグルグルです。

引き続きまして
よろしくお願いします。

投稿日時 - 2015-09-01 11:02:00

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-