• 締切済み

データ受け渡し時の維持

いつもお世話になっております。 現在A.aspからB.aspにデータを渡したいと考えているのですが、その間にユーザ認証の処理"C.asp"を入れているため、上手く渡りません。 Aで送ったデータをCが処理している間も持ち続け、Bに渡したいのです。Cはシステム上、他のファイルも参照するファイルなので、できればAもしくはBのみに手を加えることで解決したいと考えております。 現在の状況として、ユーザ認証直後は真っ白なBの画面が出て、再度Aに戻ってもう一度Bに飛ぶと認証済みのため、Aのデータ"hoge"がBにきちんと表示されます。 簡単で申し訳ありませんが、下記にソースを書きます。 何かお気づきの点があれば、ご教授ください。 宜しくお願い致します。 ※A.aspの内容 <% Response.Write "<a href=""B.asp?key=hoge""> B.aspへ</a>" %> ※B.aspの内容 <!--#include VIRTUAL="C.asp"--> <html> <head> <%Dim key2 key2 = Request.QueryString("key") %> </head> <%Response.Write url2%> </HTML> ※C.aspの内容 (長いので抜粋です) <%Option Explicit%> <%Response.Buffer = True Sub chkUser_Main() If chkUser_VerifyAuthorization() = False Then Response.Clear Session.Contents("LoginCaller") = Request.ServerVariables("SCRIPT_NAME") Response.Redirect "/login.asp" Response.End End If End Sub Function chkUser_VerifyAuthorization() chkUser_VerifyAuthorization = False Dim tUid, tPswd tUid = Session.Contents("SessionKey") tPswd = Session.Contents("Password") If (tUid = "") Or (tPswd = "") Then Exit ...続く

みんなの回答

  • X-trail_00
  • ベストアンサー率30% (438/1430)
回答No.1

c.aspの内容をglobal.asaでsession_onstartに記入すればいいのでは? global.asa はb.aspを開こうとすると 自動で割り込んできます。 url文字列をセッションに入れて保持 私の作ったシステムでは、これを利用しました。 たとえば a.aspから b.asp?no=2153 へアクセスするリンクをクリック IISはSessionIDを持っていないと b.aspへ行かせずglobal.asaをとおります。 global.asaで session("url") = Server.URLEncode(Request.ServerVariables("SCRIPT_NAME")) という風にsessionにURLを入れて c.aspへredirect c.aspでIDなどの処理をして最後で response.redirect session("url") こうすることで継続させられます

参考URL:
http://labo.heisei-tech.co.jp/Www/Asp/11.htm
adat555
質問者

補足

早速のご回答ありがとうございます。 ご回答頂く前でしたので、global.asaはいじらず、単にsessionで渡したところ、A.aspからクリックし、ユーザ認証後B.aspにAからのデータが表示出来るまではいったのですが、今度はSessionが残ったままになり、A.asp内の他のリンクをクリックしてもBでは最初のSessionのデータが表示されてしまいます。 Session.abandonとすると、ユーザ認証のSessionまで消えてしまい、再度ログインするはめになっております。何か良い方法はありませんでしょうか。 また今回ご回答頂いた件ですが、初心者でよくわかっていないもので、大変恐縮ですが、もう少し具体的に書いて頂けると幸いです。 お忙しい中、申し訳ありません。

関連するQ&A

専門家に質問してみよう