- 締切済み
WindowsアプリにPOSTのパラメータを渡す
WebフォームからPOSTメソッドで送信したパラメータを、.NETのスマートクライアントに引き渡す方法を考えています。 ノータッチデプロイメントのスマートクライアントはどうやらクエリストリングを受け取ることはできるようですがPOSTが受け取れません。 現在試しているのはいったん、クエリストリングをASP.NETで受け取り、クエリストリングに変換してスマートクラインアントのページに転送するやりかたです。 この転送をサーバ内で処理しようとする(つまりServer.Transferを用いる)とブラウザはダウンロードされるのが.exeだとは気づかすテキストとして扱ってしまいます。Response.Ridirectを用いるとうまくいくのですが、これは結局クライアントがGETメソッドを投げてしまうので、できれば避けたい状況です。 なにかいい方法はないでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- todo36
- ベストアンサー率58% (728/1234)
ノータッチデプロイメントは、クライアントで動くので サーバ側のメモリ上にあるSession, Application, Cacheには アクセスできないでしょう。 ノータッチデプロイメントがサーバ側のデータを受け取りたい場合は、 Webサービスを使うのが普通です。
- kero_mio
- ベストアンサー率90% (94/104)
Web用FormがASP.NETで作られているなら、 Sessionや、Application、キャッシュなどに一時保存してから、Response.Redirect という方法もありますが、 どうしてもPOSTにこだわりたいといったところでしょうか? あまり自信はないですが、恐らくSession、Cache、Applicationで のどれかでスマートクライアントに値の引渡しができた記憶が あるので試して頂けると幸いです。 Webフォームの画面が普通のHTMLなのか、ASP.NET用Formなのか 記載がなかったのと、スマートクライアント側の使用言語が記載されていなかったのでVB.NETとC#と2種類の例で示しておきます。 Webフォーム側(VB.NETの場合) System.Web.HttpContext.Current.Cache("Data") = 受け渡しデータ System.Web.HttpContext.Current.Session("Data") = 受け渡しデータ System.Web.HttpContext.Current.Application("Data") = 受け渡しデータ Response.Redirect "スマートクライアントのページ" スマートクライアント側(VB.NETの場合) System.Web.HttpContext.Current.Cache("Data") で受け取る System.Web.HttpContext.Current.Session("Data")で受け取る System.Web.HttpContext.Current.Application("Data")で受け取る Webフォーム側(C#の場合) System.Web.HttpContext.Current.Cache["Data"] = 受け渡しデータ System.Web.HttpContext.Current.Session["Data"] = 受け渡しデータ System.Web.HttpContext.Current.Application["Data"] = 受け渡しデータ Response.Redirect("スマートクライアントのページ") スマートクライアント側(C#の場合) System.Web.HttpContext.Current.Cache["Data"] で受け取る System.Web.HttpContext.Current.Session["Data"]で受け取る System.Web.HttpContext.Current.Application["Data"]で受け取る