2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

【質問】ASP.NETスレ Part7【雑談】

1 :nobodyさん:2012/07/26(木) 14:55:28.26 ID:ZuOFH+i6.net
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

275 :nobodyさん:2015/09/08(火) 21:32:42.23 ID:???.net
>>274
レスありがとございました。
<%-- コメント --%>
このコメントがそういう意味だったのですか!
知らなかった。ASP.NET一週間目くらいなのですが、なんでこんな
変なコメントがあるのか疑問でしたが解消できました。感謝です。

276 :nobodyさん:2015/09/08(火) 23:43:55.21 ID:???.net
コメントに限らず<% %>はサーバ側で処理する内容だからな
aspxのミニファイは標準ではたぶん対応してないと思う。探せばいくつかツールは見つかるけど
aspxは一旦サーバ側でコンパイルされてキャッシュされるから、どの程度のパフォーマンス向上があるかわからんしねぇ
たしかに転送量は若干へるだろうけど、ビューステートに比べれば微々たるもんだと言う気がするわ

277 :nobodyさん:2015/09/09(水) 07:05:02.35 ID:???.net
皆さんとても詳しそうなので、もう一つ教えてください。
WebForm1.aspxにTextBox1とButton1を配置してTextBox1に入力したデータをButton1を押すと
サーバー側でそのデータをC#で加工するという単純なアプリを作っています。
だいたいうまく行くのですが、問題があります。
それは、TextBox1にコピペでデータを貼り付けた場合に、その直後にButton1を押してもC#でTextBox1.Text
を取り出しても、中身がありません。
コピペした後でButton1を押す前にFormの上を一回クリックするとか、他の部分を触るなどした後でButton1を押すと
C#でそのデータが取り出せます。要するにTextBox1にコピペした後、フォーカスが他の部分に移ると上手く行くようなのですが、
Formをクリックするなど面倒なので、もっとスマートに解決する方法はありますか?VS2013、.NET4.0です

278 :nobodyさん:2015/09/09(水) 10:44:00.85 ID:???.net
>>277
それはサーバ側(ASP.NET)の問題じゃなくて、クライアント側(ブラウザ)の問題だと思われるが

そもそもボタンを押したのなら、その時フォーカスはボタンに移ってるはずだが
ブラウザ何で、どうやって送信してるんだ
ブラウザ側のスクリプトでなんかやってんじゃないのか

279 :nobodyさん:2015/09/09(水) 12:04:57.85 ID:/Ks4Uxow.net
>>277
>Formの上を一回クリックする

フォームって、論理的なものであって、不可視じゃないの?

280 :nobodyさん:2015/09/09(水) 12:14:41.97 ID:???.net
ASP.NET v.s.2010で、サーバーコントロールでWEBアプリを作っています。

まだ始まったばかりなので、自作クラスを作りながらのことが多いです。
自作クラスは、一つのWEBアプリ内に、csファイルとして作成しています。
一応、ネームスペースにまとめるようにしています。

しかし、これをほかのアプリからも使うんですが、
やはり、exeファイルのアセンブリにコンパイルしなおしたほうが良いでしょうか。
ずぼらな性格なので、必要なものを探し回ったり、あるいはコードに変更を加えてしまって、従来からのアプリに影響がでて困ったり、
いろいろと不安要素があります。

なにか、汎用クラスの管理にコツがあったたら教えてください。

281 :nobodyさん:2015/09/09(水) 12:30:44.55 ID:???.net
>>279
フォームというより、ブラウザーの余白部分とかそういう意味でした。

>>278
>ブラウザ何で、どうやって送信してるんだ

VS2013でWebフォームアプリの作成を選んで、
自動生成されるWebForm1.aspxに
ScriptManager1
TextBox1
Button1
を配置しただけの簡単なアプリです。
このやり方で良いのかどうかも良く分かりません。

282 :nobodyさん:2015/09/09(水) 12:32:45.67 ID:???.net
>>280
いまさら2010かよ
複数のアプリで使うのなら、その部分ははじめから別プロジェクトでdll作っとけよ
exeにする必要なんてないぞ

283 :nobodyさん:2015/09/09(水) 12:37:01.03 ID:???.net
>>281
サーバサイドとクライアントサイドの区別ついてるか?
ブラウザは何で、どうやってブラウザから送信してるのかって聞いてるんだが

284 :nobodyさん:2015/09/09(水) 12:37:16.69 ID:???.net
>>282
レス、ありがとう、さっそく。

>別プロジェクトでdll作っとけ

抽象クラスも混じっているし、単独で走らせられない(実行のできない)クラス群になるんですが、
別プロジェクトに切り離して、どうやってデバッグするんでしょうか。
あっ!、検証用のコードも混じらせるということなのかな。

285 :nobodyさん:2015/09/09(水) 12:39:06.73 ID:???.net
>>281
>ScriptManager1

これが臭いんだが、
これを外した、通常動作のものは動作するのだろうか。

286 :nobodyさん:2015/09/09(水) 12:40:20.83 ID:???.net
>>282
コミュニティー2013を使うと、
2010にはないメリットがあったら、教えてください。
インストールするきっかけがほしい。

287 :nobodyさん:2015/09/09(水) 12:42:08.88 ID:???.net
>>283
ie11
Button1のOnClickでC#の関数に行くからそこでTextBox1.Textを読んでるんだが。
何かおかしい?

288 :nobodyさん:2015/09/09(水) 12:46:00.58 ID:???.net
>>287
>TextBox1.Text

これって、ajaxの定義範囲から外れて定義されているとかない?

289 :nobodyさん:2015/09/09(水) 12:47:46.00 ID:???.net
>>285
>>ScriptManager1
>これが臭いんだが、
自分でも何でこれを追加したのか忘れました。とにかく最初に質問したようにTextBox1にコピペした場合や、deleteキーやbackspaceキーで編集した直後にButton1押して、C#側でそのデータを読み出したいだけなんですが。なぜか変更前のデータになってしまいます

290 :nobodyさん:2015/09/09(水) 12:50:52.32 ID:???.net
>>288
>これって、ajaxの定義範囲から外れて定義されているとかない?
それはどうやって調べれば分かりますか?
<asp:TextBox ...
みたいに頭に<aspがついていますがこれでいいんでしょうか?

291 :nobodyさん:2015/09/09(水) 12:53:04.98 ID:???.net
>>289
一度、新しくWEBページを作成して、
テストコードを入力したほうが早いと思うよ。
なんか、ajax関係の動作が噛んでおかしくなっていそう。(ScriptManagerはその役割を担っている)

おっしゃっている、テスト動作は、ふつう、問題なくできるよ。
page_loadや、button_clickサーバイベントハンドラで取得するんでしょ。
問題ないはず。

292 :nobodyさん:2015/09/09(水) 13:47:22.14 ID:???.net
>>291
ありがとうございました!
新規にやり直したら、うまく行きました。
ASP.NETやっている人はみんな親切でいいなあ。

293 :nobodyさん:2015/09/09(水) 19:09:07.36 ID:???.net
また質問なんですが、
WebForm1を実行すると以下のような順番でイベントが発生するようです。
C#のPage_Init()
C#のPage_Load()
$(document).ready()
$(window).load()
C#側では IsPostBack == true と言う判定を使えばPostBackかどうか分かりますが、
クライアントサイドでも同じような判定は可能でしょうか?
要するに最初にWebForm1を開いて$(document).ready()など実行される場合と、
それ以降に$(document).ready()が実行される場合を区別出来ますか?

294 :nobodyさん:2015/09/09(水) 21:06:10.84 ID:???.net
>>293
というか、getと、postしかないから、
クライアントサイドからどうのこうのという場合は、常にpostなのでは?

295 :nobodyさん:2015/09/09(水) 22:07:53.25 ID:???.net
さわりはじめだから右も左もわからんのだろう

296 :nobodyさん:2015/09/09(水) 22:18:42.52 ID:???.net
>>284
>別プロジェクトに切り離して、どうやってデバッグするんでしょうか。
同じソリューションなら普通にデバッグできるだろ
今時一つのソリューションで複数プロジェクト扱えないようなエディション使ってたら知らん

>>293
サーバサイドとクライアントサイドの区別ついてるか...
クライアントで非同期ポストパックかどうか調べたいって話ならPageRequestManager使えばいいんじゃね
使い方は適当にググれ

297 :nobodyさん:2015/09/09(水) 22:41:31.76 ID:???.net
>>294
常にpostだってのが、フォームをsubmitするメソッドの事を言ってるのなら
getでポストバックさせることもできるぞ

クライアントサイドからのアクションはポストバックにきまってるだろっていうならまあその通りか
ただ$(document).ready()とかは初回表示時もポストバック時も非同期ポストバック時も発生するから

298 :nobodyさん:2015/09/09(水) 22:52:30.01 ID:???.net
>>297
>ただ$(document).ready()とかは初回表示時もポストバック時も非同期ポストバック時も発生するから
それをクライアントサイドで区別したいんですが、無理ですか?

299 :nobodyさん:2015/09/09(水) 23:07:28.40 ID:???.net
>>298
よくわからんが、初回表示した時と、なんらかのアクション後(POST BACK後)をクライアントサイドでも区別したいということかな?

多分、サーバー側でその状態をJavaScriptとして書き出せばできるんじゃなかろうか。

300 :nobodyさん:2015/09/10(木) 00:46:07.45 ID:???.net
PageRequestManager使えって言ってるだろ

301 :nobodyさん:2015/09/10(木) 00:57:16.83 ID:???.net
>>296
知らない奴に限って要領を得ない事をグダグダ書くんだよな

302 :nobodyさん:2015/09/10(木) 02:47:26.43 ID:???.net
そりゃ要点をちゃんと抑えて整理出来るなら自分で解決できてるだろうからな

303 :nobodyさん:2015/09/10(木) 10:43:52.19 ID:???.net
>>284
ありがとうございます。
できました!

しかし、objフォルダと、binフォルダと、どう違うんでしょうか。
両方に、同じ名称で同じサイズのdllがあったんですが。

objフォルダに入っているdllを、参照設定しましたけど。

304 :nobodyさん:2015/09/10(木) 14:50:56.21 ID:???.net
iisとasp.netでwebサイト作った場合、物凄く負荷が大きい時に誤動作してAさん向けのページがBさんに表示されるなんて事は無いですか?

305 :nobodyさん:2015/09/10(木) 16:43:44.33 ID:???.net
>>303
dllを参照するんじゃなくて、そのdllを作るプロジェクトを参照するんだぞ

306 :nobodyさん:2015/09/10(木) 16:47:00.31 ID:???.net
>>304
高負荷でそんな「誤動作」するとか見たことも聞いたことも無いわ

307 :nobodyさん:2015/09/10(木) 17:42:17.23 ID:???.net
TextBoxに文字貼り付けるとValidationが反応して怒られる場合有りますよね。
これを無効化するとどう言う危険性が有るんですか?
貼られた文字列を実行する処理など入れて無ければ問題無いですよね?

308 :nobodyさん:2015/09/10(木) 20:19:54.23 ID:???.net
>>304
そんなの有ったとしてもアプリケーション側のバグでしょ

309 :nobodyさん:2015/09/10(木) 21:16:32.20 ID:???.net
>>305
プロジェクトフォルダ内にあるobjフォルダのアセンブリ(dll)自体を参照させたら、
参照側プロジェクトにdllファイルが自動的にコピーされたんだけど。

310 :nobodyさん:2015/09/10(木) 21:25:25.32 ID:???.net
>>304
プログラマらしからぬ発言

311 :nobodyさん:2015/09/11(金) 00:07:58.84 ID:???.net
>>307
その程度の認識だとXSSの考慮が漏れてそう・・。
まあ出力時にエスケープが徹底されていれば問題ないけど。

312 :nobodyさん:2015/09/11(金) 00:32:57.40 ID:???.net
クライアントサイドのバリデーションは所詮はユーザビリティ向上くらいの意味だから
切りたければ切っても良いと思うけど、Webアプリまわりのセキュリティについて一度勉強した方が良いのでは。

313 :nobodyさん:2015/09/11(金) 08:30:34.05 ID:???.net
>>312
モデルクラスで解決すべき問題だと認識されていますか

314 :nobodyさん:2015/09/11(金) 08:53:49.76 ID:???.net
>>307
入力した文字列を、表示しようとしただけで攻撃が成功する可能性があるから
よくわからんならそのままにしとけ

315 :nobodyさん:2015/09/11(金) 08:54:43.48 ID:???.net
>>309
参照にはローカルコピーするかどうかの設定があるわけだが
コピーされたからどうだと?
dll側もデバッグしたいんだろ?素直に言われた通りやっとけ

316 :nobodyさん:2015/09/11(金) 08:56:35.24 ID:???.net
>>312
いや、たぶん、クライアントサイドでバリデーションするとか言う話ではなく
標準でポスト時にかってにポストデータ検証される機能の事だと思うぞ

まあWebアプリのセキュリティについて勉強しろってのは激しく同意するが

317 :nobodyさん:2015/09/11(金) 09:05:52.66 ID:???.net
>>314
>入力した文字列を、表示しようとしただけで攻撃が成功する可能性
そんな文字列あるんか?

318 :nobodyさん:2015/09/11(金) 10:47:18.05 ID:???.net
HTMLENCODEでほぼ解決!
あとは、致命的なバグだろうな。

if (inputvalue == "reset")
{
Reboot;
}

こういうバックドアを書いていたら、入力される文字列で攻撃が完成する。

319 :nobodyさん:2015/09/11(金) 10:54:48.55 ID:???.net
>>305>>315
レスいただきありがとうございます。

アセンブリを参照するための方法として、二つあるってこと?

1、dllファイルのみを、参照する側のプロジェクトにコピー
2、プロジェクトフォルダごと、参照する側のプロジェクトから参照する設定を加える


考えられたこととして、
2、の場合だと、被参照プロジェクトでバージョンアップしたとき、
参照側のプロジェクトに影響する。
もちろん、良い意味と、悪い意味と、両方。

1、の場合だと、
被参照プロジェクト側がどう変更されようが、参照側のプロジェクトには一切の影響がない。


なぜ、>>315さんは、2の方法を推薦するのか、知りたいです。

320 :nobodyさん:2015/09/11(金) 10:57:12.83 ID:???.net
>>318
それは入力した文字列を実行するんじゃ無いだろ。単におバカプログラマーだ

321 :nobodyさん:2015/09/11(金) 10:58:01.51 ID:???.net
>>317
何も考えずにそのまま全部表示しようとしたら
スクリプトインジェクション系の攻撃は全部成功だろ

322 :nobodyさん:2015/09/11(金) 10:59:45.11 ID:???.net
>>319
.csprojファイル編集したら好きなように出来るだろ。どうでもいい変な事を悩むなよ

323 :nobodyさん:2015/09/11(金) 11:00:20.66 ID:???.net
>>316
すみません、わかりました。

>>315>dll側もデバッグしたいんだろ?

そういうことです。

324 :nobodyさん:2015/09/11(金) 11:01:42.41 ID:???.net
>>321
表示って、textboxに入力されたら内容をそのままtextboxに表示するだけだぞ。
それで攻撃が完了するのか?

325 :nobodyさん:2015/09/11(金) 11:02:42.82 ID:???.net
>>322
GUI操作にとらわれずに、自分で、アセンブリ参照を書き換えなさいってことでしょうか。

326 :nobodyさん:2015/09/11(金) 11:06:14.13 ID:???.net
>>325
書き換えたければそう言う方法もあるっていうだけで、勧めている訳ではないが、設定の多くはcsprojファイルに書かれて居るので、手っ取り早い方法はcsprojの編集だとおもう。

327 :nobodyさん:2015/09/11(金) 11:08:44.80 ID:???.net
>>320
入力された文字が実行されたり、(インジェクションとか、xss)
入力された文字が「意図された」コードの実行を起こしたり、(>>318)
あくまでコードが正しく実行されて、攻撃が完成する場合は納得できます。

しかし、.net側のセキュリティーホールで、意図しないところで攻撃が実現されてしまうことはあるんでしょうかね。

いままで、フレームワーク上の欠陥で、セキュリティーホールが生じたことってあったのかなあ。
そうでなければ、あとはプログラマの技量だけで、どうにでもなりますよね。
WEBを全世界に公開するのもためらいませんが、,net事態の欠陥で、危ぶまれるのなら、躊躇するなあ。

328 :nobodyさん:2015/09/11(金) 11:09:15.51 ID:???.net
>>319
そこに書いてあるけど、dll側もデバッグしたいんだろ?

その参照されるdllってのは、元プロジェクトから切り出した部分じゃないのか?
つまり自分で変更するし、変更が反映されないと困るんじゃないのか?
そのdll(のソース)に手を入れない前提なら好きにすればいい

329 :nobodyさん:2015/09/11(金) 11:18:24.45 ID:???.net
>>324
Textbox.Textはたしか勝手にエンコードするから大丈夫
でも全ての表示できる内容がエンコードされるわけじゃない
たしかLabel.Textは生HTMLで出力する
適切にエンコードした出力すれば大丈夫なんだが、それが難しい
せめて危険かどうかの判断ができるようになるまで、保険的にバリデート外すなって言ってる

まあ、あれ、SQL系のインジェクションにはほとんど無力なんだがな

330 :nobodyさん:2015/09/11(金) 11:21:14.53 ID:???.net
>>329
>SQL系のインジェクション

この対策は、parameterオブジェクトのaddメソッドで、parameterを追加する方法で、
回避可能だと聞いたことがあります。もちろん、ストアドプロシジャでしか使えないけど。

331 :nobodyさん:2015/09/11(金) 11:23:10.39 ID:???.net
>>329
Labelも含めて、ブラウザに出力するコントロールのすべてにおいて、
デフォで、htmlEcodeをかけておいてほしかったな。

必要なら、意識して自分で外せるようにしておいてもらったほうが良かった。

332 :nobodyさん:2015/09/11(金) 11:23:57.25 ID:???.net
>>327
>net側のセキュリティーホールで、意図しないところで攻撃が実現されてしまうことはあるんでしょうかね。
可能性としては当然ある
>フレームワーク上の欠陥で、セキュリティーホールが生じたことってあったのかなあ。
いくらでもある
何のためにマイクロソフトがいっぱいアップデートパッチ出してると思ってるんだ

少なくともお前や俺がミスってセキュリティホール作る方が
フレームワークの欠陥で穴が見つかるよりよっぽど可能性が高いから心配するな

333 :nobodyさん:2015/09/11(金) 11:24:00.12 ID:???.net
>>328
その通りです。すみません、先に>>323にレスしていました。

334 :nobodyさん:2015/09/11(金) 11:24:35.61 ID:???.net
>>328
丁寧に、ありがとうございます。

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

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

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

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

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

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

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

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

339 :nobodyさん:2015/09/11(金) 11:34:39.50 ID:???.net
>>335
それはお前の間違いであって、フレームワークの穴じゃないだろ

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

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

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

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

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

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

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

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

342 :nobodyさん:2015/09/11(金) 22:05:09.15 ID:???.net
>>341
キーの話だけじゃないんだ。
?もダブっている。

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

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

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

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

343 :nobodyさん:2015/09/11(金) 22:08:03.17 ID:???.net
>>342
honyararaって、実在サイトだった!
私とは関係ないので、あしからず。

344 :nobodyさん:2015/09/11(金) 23:35:17.27 ID:???.net
>>342
例外を発生させるべき理由なんてないけど?

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

345 :nobodyさん:2015/09/12(土) 03:29:53.07 ID:???.net
初歩的な質問なのですが、
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 :nobodyさん:2015/09/12(土) 06:31:37.00 ID:???.net
>>344
感情的にならずに、何がどうおかしいのか、論破すべきだよ

347 :nobodyさん:2015/09/12(土) 10:33:50.88 ID:???.net
>>345
IISの設定をみなおしあ

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

348 :nobodyさん:2015/09/12(土) 10:47:50.95 ID:???.net
>>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 :nobodyさん:2015/09/12(土) 16:11:02.27 ID:???.net
>>345
でもこれだとって、それ別の話なんだが
とりあえずsub1にもindex.html作っとけば

350 :nobodyさん:2015/09/12(土) 16:13:21.74 ID:???.net
>>346
>>341,343

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

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

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

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

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

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

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

356 :nobodyさん:2015/09/12(土) 19:56:30.79 ID:???.net
>>354
定義されていないから、例外として捕捉されるんじゃないの??

357 :nobodyさん:2015/09/12(土) 20:01:11.83 ID:???.net
>>356
そんな難しい話は置いといて344お願いしますだ。

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

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

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

360 :nobodyさん:2015/09/12(土) 20:37:28.71 ID:???.net
>>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 :nobodyさん:2015/09/12(土) 20:46:12.20 ID:???.net
>>360
ありがとう。
じゃあ、ここも?

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

362 :nobodyさん:2015/09/12(土) 20:47:09.00 ID:???.net
>>359
自分で、例外投げることにするわ

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

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

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

366 :nobodyさん:2015/09/12(土) 23:29:08.38 ID:???.net
>>365
アプリケーション的にそうせざるを得ないだけでしょ?

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

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

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

368 :nobodyさん:2015/09/13(日) 11:47:04.02 ID:???.net
>>361
駄目だ。分からんかった

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

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

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

372 :nobodyさん:2015/09/14(月) 19:26:05.17 ID:???.net
>>371
>この部分を別のJSファイルに分離すると、

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

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

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

231 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver.24052200