facebook twitter hatena line google mixi email
★お気に入り追加


  • 1
  •  
  • 2012/07/26(木) 14:55:28.26
ASP.NETとは、マイクロソフトが提供するWeb アプリケーションと XML Web サービスを構築するための
Microsoft .NET Frameworkの一連のテクノロジの一つです。
技術の移り変わりの早い分野ですので、みんなで質問、相談しつつ、より理解を深めていきましょう。

●ASP.NET関連サイト
マイクロソフトASP.NETデベロッパーセンター
http://msdn.microsoft.com/ja-jp/asp.net/default.aspx
ASP.NETオフィシャル(英語)
http://www.asp.net/
VisualStudioホームページ
http://www.microsoft.com/japan/msdn/vstudio/
SQLServerホーム
http://www.microsoft.com/japan/sqlserver/2005/default.mspx
IISオフィシャル(英語)
http://www.iis.net/
ASP.NETにAJAX技術を取り入れるASP>NET AJAX(英語)
http://www.asp.net/ajax/
ASP.NETにMVCアーキテクチャを取り入れるASP.NET MVC(英語)
http://www.asp.net/mvc/
ASP.NETでのお役立ちの定番サイト
http://www.atmarkit.co.jp/channel/aspnet/aspnet.html

ここまで見た
  • 334
  •  
  • 2015/09/11(金) 11:24:35.61
>>328
丁寧に、ありがとうございます。

ここまで見た
  • 335
  •  
  • 2015/09/11(金) 11:28:27.71
>>332
やはりあったんだ。
せっかくしっかり作りこんでいても、土台でセキュリティーホールがあったら、
どうしようもないな。

今、一つ気になっているのは、クエリストリングの処理。
間違えて、URLとクエリストリングの文字列に、さらにクエリストリングを連結させてしまったら、
ランタイムエラーが出ずに、「,」が復元先のテキストボックスに表示されてしまったよ。
(同名のクエリストリングが重なった状態になったのだと思う。)

クエリストリングも公開WEBアプリには使わないほうがいいと思った。

ここまで見た
  • 336
  •  
  • 2015/09/11(金) 11:29:37.54
>>330
ストアドじゃなくてもパラメタは使える
まあ、SQLインジェクションに対してはパラメタ使えってのは鉄則

なんだが、ついつい動的にSQL書いちまうんだよなぁ

ここまで見た
  • 337
  •  
  • 2015/09/11(金) 11:31:37.89
>>326
ありがとうございます。
csprojの編集ということもできるなんて、初めて知ったので、勉強になりました。

ここまで見た
  • 338
  •  
  • 2015/09/11(金) 11:34:24.22
>>336
そうなんですか。Sql server系だったら、@パラメーターを、sql文字列に埋め込んでおいて、
同じ要領で、パラメーターオブジェクトをコマンドオブジェクトに組み込んで、投げることができるんですね。

しかし、sql動的作成だと、パラメーター以外に、インジェクションされる危険が多々ありますよね。
日本語しか入力させないようにしたら少しはましになるのかな。

ここまで見た
  • 339
  •  
  • 2015/09/11(金) 11:34:39.50
>>335
それはお前の間違いであって、フレームワークの穴じゃないだろ

そこでクエリストリングの仕様と、起こった事の詳細を解明しようと思わないなら
プログラミングやめた方がいいよ、マジで

ここまで見た
  • 340
  •  
  • 2015/09/11(金) 11:40:35.17
>>339
ポストバックされたページから、urlをつかんだら、すでにクエリストリングが含まれているんですよね。
そこからクエリストリングを切断したうえで、新たなクエリストリングを連結させる必要があったんですよ。
ここまでが、MS提供のライブラリを使うプログラマの範囲かなと思うんです。

しかし、なぜ、同名のクエリストリングが重なったら、おかしい文字列が取得されるのかは、
ライブラリ内の話になるので、追及できません。それとも、逆アセンブリするんでしょうか。

同じ問題が生じないように、対策を立てることくらいはできますけどね。
値を取得する前に、クエリストリングのキーがダブっていないか、検査するとか。
例外を投げてほしかったな。

ここまで見た
  • 341
  •  
  • 2015/09/11(金) 12:01:24.14
>>340
>なぜ、同名のクエリストリングが重なったら、おかしい文字列が取得されるのか
コード見ないとわからんが、まあ多分、お前の取得の仕方が悪いだけ

お前が勝手に同名のクエリ文字列は存在しないと思いこんでるだけで
それ前提で作れば、当然おかしな動作するわな

HttpRequest.QueryStringの戻りはNameValueCollection
NameValueCollection.Itemの戻りは、指定したキーに関連付けられた値のコンマ区切りのリストを格納する String

おかしな文字列でもなんでもなく正しく動いてるようにみえるな

ここまで見た
  • 342
  •  
  • 2015/09/11(金) 22:05:09.15
>>341
キーの話だけじゃないんだ。
?もダブっている。

http://honyarara.com?key1=asdf&key2=werf?key1=fafag&key2=greasge

こんな感じで、?からダブっているイメージ。

こんなurlでpageへポストバックして、querystringのコレクションを読み出すけど、
例外が発生しないわけなんだよ。

もちろん、querystringを作成する処理にバグを発生させてしまっていたので、
修正したのだけれど。

ここまで見た
  • 343
  •  
  • 2015/09/11(金) 22:08:03.17
>>342
honyararaって、実在サイトだった!
私とは関係ないので、あしからず。

ここまで見た
  • 344
  •  
  • 2015/09/11(金) 23:35:17.27
>>342
例外を発生させるべき理由なんてないけど?

おかしいのはお前の理解
まさに、お前の思った通りに動かなくてもお前がプログラムした通り動いてる

ここまで見た
  • 345
  •  
  • 2015/09/12(土) 03:29:53.07
初歩的な質問なのですが、
VSのソリューションMyHomePageというのを作って
Default.aspx
sub1/Default1.aspx
sub2/Default2.aspx
のようなディレクトリ構成で、それを発行して
www.example.com/MyHomePage/   (1)
に配置しました。その時
www.example.com
にアクセスした場合に、
www.example.com/MyHomePage/Default.aspx   (2)
を開くにはどういう方式を使うのが一般的ですか?
現状では、
www.example.com/index.html   (3)
を作成してその中で(2)にredirectしています。でもこれだと、
www.example.com/sub1/
にアクセスすると当然エラーしてしまいます。

ここまで見た
  • 346
  •  
  • 2015/09/12(土) 06:31:37.00
>>344
感情的にならずに、何がどうおかしいのか、論破すべきだよ

ここまで見た
  • 347
  •  
  • 2015/09/12(土) 10:33:50.88
>>345
IISの設定をみなおしあ

>>342
なんで「?」が二重にあるの

ここまで見た
  • 348
  •  
  • 2015/09/12(土) 10:47:50.95
>>346
横からだけど・・・

HttpRequest.QueryString
https://msdn.microsoft.com/ja-jp/library/system.web.httprequest.querystring(v=vs.110).aspx
NameValueCollection
https://msdn.microsoft.com/ja-jp/library/system.collections.specialized.namevaluecollection(v=vs.110).aspx

そんな例外は仕様に書かれていないし、「例外が発生しない」ものはしない。
無い物ねだりをしているのは >>346 であって、その例外が発生すべき理由を論理的に説明できていない。
(>>335の内容がASP.NETの挙動として何がおかしいのか分からない。アプリケーション的に問題のあるPOST内容をエスケープできてないだけ)

ASP.NETの仕様に提案があればMSは受け付けているし、そっちでどうぞ。
それも嫌だったら、「俺の考えた最強のセキュリティー機能搭載フレームワーク」を独自開発してくれって話だ。
馬鹿なPHPerがよく陥りやすい思考回路だけどね。

ここまで見た
  • 349
  •  
  • 2015/09/12(土) 16:11:02.27
>>345
でもこれだとって、それ別の話なんだが
とりあえずsub1にもindex.html作っとけば

ここまで見た
  • 350
  •  
  • 2015/09/12(土) 16:13:21.74
>>346
>>341,343

ここまで見た
  • 351
  •  
  • 2015/09/12(土) 16:32:22.58
>>348
仕様的におかしなことをしたからって、全てが例外を吐くとは限らんけどな
だから、おかしいと思ったらまず仕様を確認してそれに則ってるか確認するべき

で、おそらく>>335はクエリストリングの仕様を正しく理解してない。さんざん言われてるのに
>>346は多分別人だろ

ここまで見た
  • 352
  •  
  • 2015/09/12(土) 16:37:22.78
>>349
そう言う方法ではサブフォルダが増える度にredirect設定が必要じゃん。そうでは無くてasp.netの仮想デレクトリとかそう言う機能で出来るかな?

ここまで見た
  • 353
  •  
  • 2015/09/12(土) 18:41:12.31
>>352
仮想ディレクトリはASP.NETじゃなくてIISの機能
フォルダのデフォルトページと、ページが見つからなかった場合の処理は別の話なんだが

とりあえずIISかASP.NETかで404エラー捕まえて何とかすりゃ良いんじゃね

ここまで見た
  • 354
  •  
  • 2015/09/12(土) 19:42:49.81
>>351
定義されてない例外は起きないと言ってるのに、どうしたの?
黙っててくれるかな?

ここまで見た
  • 355
  •  
  • 2015/09/12(土) 19:51:25.46
>>353
>404エラー捕まえて何とかすりゃ良いんじゃね
そんな方法ってあり?
もっと正統的な方法があると思うのだがググッテも見つからん。

ここまで見た
  • 356
  •  
  • 2015/09/12(土) 19:56:30.79
>>354
定義されていないから、例外として捕捉されるんじゃないの??

ここまで見た
  • 357
  •  
  • 2015/09/12(土) 20:01:11.83
>>356
そんな難しい話は置いといて344お願いしますだ。

ここまで見た
  • 358
  •  
  • 2015/09/12(土) 20:15:43.51
>>357
このあたり、ヒントになるんでは?
http://forums.iis.net/t/1209305.aspx?How+to+redirect+all+pages+from+a+subdirectory+to+the+root+directory+

あとで、できたか報告おねがいします!

ここまで見た
  • 359
  •  
  • 2015/09/12(土) 20:37:25.74
>>356
え?こういう例外が起きますよ、ってMSDNに書いてあるよね。
それ以外に例外は起きようがない。
マニュアルも読めないなら黙っとけ(笑)

ここまで見た
  • 360
  •  
  • 2015/09/12(土) 20:37:28.71
>>358
情報ありがとう!
でも、この情報では、
 http://nonghoc.com/nonghoc/Default.aspx - > http://nonghoc.com/Default.aspx
のようにサブフォルダーへのアクセスをRootにリダイレクトする設定のようです。
私のやりたいのはその逆でRootへのアクセスをサブフォルダーへリダイレクトなので、
 http://nonghoc.com/Default.aspx  - >  http://nonghoc.com/nonghoc/Default.aspx
になるから、逆のような気がする。難しい。

ここまで見た
  • 361
  •  
  • 2015/09/12(土) 20:46:12.20
>>360
ありがとう。
じゃあ、ここも?

https://host4asp.net/top-iis-rewrite-rules/

ここまで見た
  • 362
  •  
  • 2015/09/12(土) 20:47:09.00
>>359
自分で、例外投げることにするわ

ここまで見た
  • 363
  •  
  • 2015/09/12(土) 20:53:35.98
>>361
君は検索の達人か!
飯食った後でじっくり読んでみるよ。有難う。

ここまで見た
  • 364
  •  
  • 2015/09/12(土) 22:50:07.66
>>362
それでええんやで
フレームワークから得ている恩恵を顧みずに勉強不足を棚に上げて、文句ばかり言わないように。

ここまで見た
  • 365
  •  
  • 2015/09/12(土) 23:15:30.52
>>364
あなたの論理とは違うところで、そういう判断に至ったわけなので、
「それでいいんやで」なんて、気持ちの悪くなるようなこと言わないでください
わたしは、あなたの例外だ。しかも、捕捉もできない型なんでw

ここまで見た
  • 366
  •  
  • 2015/09/12(土) 23:29:08.38
>>365
アプリケーション的にそうせざるを得ないだけでしょ?

.NETにセキュリティ的に不安があるんじゃなかったの?どういう思考回路でこのまま.NETでいくことにしたの?君のアプリのセキュリティは万全になったかな?
おじさん心配だよ〜

ここまで見た
  • 367
  •  
  • 2015/09/13(日) 02:24:04.28
>>354
定義されてない例外が起きるなんて誰か言ってるか?
>>351は全ての仕様違反に対して例外が定義されてるわけではないって話だが

まあ、例外定義どころか仕様違反ですらないのに例外が発生しないとかいう人もいたが

ここまで見た
  • 368
  •  
  • 2015/09/13(日) 11:47:04.02
>>361
駄目だ。分からんかった

ここまで見た
  • 369
  •  
  • 2015/09/14(月) 10:47:12.73
普通のcssなら style="width:calc(計算式)"みたいな計算できますが、
ASP.NETのStyleでも同じような事できますか?

ここまで見た
  • 370
  •  
  • 2015/09/14(月) 16:48:25.94
コントロールのStyleプロパティなら、基本的にはたぶんそのまま表示されるだろうから
普通にブラウザ依存なんじゃないかな

ここまで見た
  • 371
  •  
  • 2015/09/14(月) 18:29:08.09
asp.netで .aspxファイルの中に記述した
<script type="text/javascript">
  var v = '<%= c_sharp_var %>';
</script>
でC#からJSに変数を渡せますが、この部分を別のJSファイルに分離すると、
上記の文字列は単に文字列として解釈されてしまうようでC#の値を取得出来ませんでした。
どうすれば良いでしょうか?

ここまで見た
  • 372
  •  
  • 2015/09/14(月) 19:26:05.17
>>371
>この部分を別のJSファイルに分離すると、

このあたりをもっとわかりやすく言ってほしい

ここまで見た
  • 373
  •  
  • 2015/09/14(月) 19:43:18.66
>>372
それは簡単で、
プロジェクトにJavaScriptファイルを追加して、.aspxの中に書いていた
JSのコードをそのファイルに移動するだけです。
ファイルは、.aspxファイルの冒頭で読み込む設定を追加します。
これだけです。

ここまで見た
  • 374
  •  
  • 2015/09/14(月) 20:24:08.15
>>371
jsファイルもasp.netで処理できるようにするか・・・普通js側でREST呼び出しでJSON受け取るのがいいんでしょうね。めんどくさいケド

ここまで見た
  • 375
  •  
  • 2015/09/14(月) 20:36:50.00
aspxにjavascriptのグローバル変数を作って、サーバで値埋め込んで返すんだ
(言わせんな恥ずかしい)

ここまで見た
  • 376
  •  
  • 2015/09/14(月) 21:56:57.23
>>375
先輩、ASP.NETこれからもコーチお願いします。

ここまで見た
  • 377
  •  
  • 2015/09/15(火) 12:31:29.98
asp:DropDownList
をIE11で開く場合、一番末尾のアイテムが選択されている場合に、
再度ボタンをクリックして開くとウインドウが上方向に開きます。
これを、常時下方向に開かせる手法を教えてください。
自前のDropDownListを作るしかないでしょうか?

ここまで見た
  • 378
  •  
  • 2015/09/15(火) 17:00:52.42
IEの仕様なんだから無理でしょ
押したら一番上選択したら?

$('#sel').mousedown( function() {
$('option:eq(0)',this).prop('selected','selected');
});

ここまで見た
  • 379
  •  
  • 2015/09/15(火) 18:31:57.87
レスありがとうございました。
>>378
せっかく教えてもらったのですが、内容が良く分かりません。
asp:DropDownList に、mousedownイベントのイベントハンドラー関数を関連付ることは出来るのでしょうか?
実際にやってみたのですが、出来ませんでした。私のやり方が何か間違ているのかもしれませんが。

ここまで見た
  • 380
  •  
  • 2015/09/15(火) 19:37:32.77
横からだが
>>379
>>378はクライアント側のスクリプトだぞ
IEの仕様ということはクライアント側の話だから、サーバ側で操作できない
だからクライアント側のスクリプトで操作すれば、って話

ここまで見た
  • 381
  •  
  • 2015/09/15(火) 21:41:35.14
>>380
サーバー側でmousedownなんて有るのか?

ここまで見た
  • 382
  •  
  • 2015/09/15(火) 22:16:50.67
>>381
ないだろ
質問の意図がわからん

ここまで見た
  • 383
  •  
  • 2015/09/16(水) 01:18:15.75
ドロップダウンのOnChangeでPostbackかかって、
スクロール位置が上に戻るって話じゃないよね?
(それならASP.NETがスクロール位置を保持する機能あるけど・・)

とにかく質問の日本語があやふやで、混乱する。

ここまで見た
  • 384
  •  
  • 2015/09/16(水) 07:46:42.66
いやたぶん、IEのselectの表示の仕方の話だと思うが
ぶっちゃけASP.NET関係ない

ここまで見た
  • 385
  •  
  • 2015/09/16(水) 11:18:06.47
IEだとDropDownListが上に開く場合があるから下に開きたいんだろ

お絵かきランド
フリックゾンビ
ここまで見た

★お気に入り追加

このページを共有する
facebook twitter hatena line google mixi email