[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 2chのread.cgiへ]
Update time : 10/17 05:12 / Filesize : 262 KB / Number-of Response : 797
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【質問】ASP.NETスレ Part5【議論】



1 名前:nobodyさん mailto:sage [2009/01/23(金) 09:46:51 ID:???]
●過去ログ
Part1 - 【質問】 ASP.NETスレ 【議論】
pc5.2ch.net/php/kako/1040/10406/1040698263.html
【質問】ASP.NETスレ Part2【議論】
pc8.2ch.net/test/read.cgi/php/1111480331/
【質問】ASP.NETスレ Part3【議論】
pc11.2ch.net/test/read.cgi/php/1160355849/
【質問】ASP.NETスレ Part4【議論】
pc11.2ch.net/test/read.cgi/php/1184683786/ (dat落ち?)

あんまり需要ないのかもしれませんが。。。

237 名前:nobodyさん mailto:sage [2009/05/09(土) 13:10:10 ID:???]
それでもlabelobjectがnullな状態ってのがよくわかんないね

238 名前:nobodyさん mailto:sage [2009/05/09(土) 23:37:56 ID:???]
くっそー
いままでprototypeだったけどjquery結構便利だな
なんか和んだ( ´ー`)フゥー...

239 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/05/11(月) 09:16:40 ID:???]
>>238
VS2008SP1からだったか、jqueryは標準サポートだしな

240 名前:nobodyさん mailto:sage [2009/05/12(火) 00:01:12 ID:???]
VS2005でなんとかしてjQuery使えないかな
IntelliSenseは無くてもいいから

241 名前:163 mailto:sage [2009/05/12(火) 01:28:31 ID:???]
>>204の続きです。
以下のイベントログが出力されており、
AppPoolが再起動している為、
セッション情報が消えてるぽいです。
クラッシュダンプで調べるしかないでしょうか?
他に調査方法があればご教授お願い致します。

・イベントログ
アプリケーション プール 'xxx' を提供しているプロセスは、
World Wide Web 発行サービスで致命的な通信エラーを検出しました。
イベントID 1011


242 名前:nobodyさん mailto:sage [2009/05/12(火) 01:37:48 ID:???]
>>240
普通にJQueryいれりゃいんじゃないか?


243 名前:nobodyさん [2009/05/12(火) 05:14:26 ID:U71Iyk1V]
旧ASPでPDFファイルを作成したいのですが、どんな方法があるでしょうか。
PDFは表形式で、グリッドの高さは可変で、行の途中にページの境目が来る
ようならその行の前に改ページしなくてはなりません。
サーバー側の処理でPDFファイル化したいです。
よろしくお願いします。

244 名前:nobodyさん mailto:sage [2009/05/12(火) 06:58:22 ID:???]
安心したまえ。PDFだってテキスト直うちで書けるんだ。
つまり、FileSystemObjectでテキストファイルを生成して、
後はPDFの仕様通り文字列を吐き出せばいいだけだよ。簡単でしょ。

マジレスすると、無理だから別途そういうパッケージソフトを買う。
ビジネスソフト板で帳票作成ソフトというと、まぁ数は限られるから調べてみるといい。

245 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/05/12(火) 09:09:04 ID:???]
>>241
本質的な解決ではないけど、session維持したいなら
stateserverモードを使うとかどうよ?



246 名前:nobodyさん mailto:sage [2009/05/12(火) 10:47:32 ID:???]
ClassicASPでPDFって言うと何があるのかね
ASP.NETならActiveReport一押しなんだけど

247 名前:243 [2009/05/12(火) 11:35:40 ID:U71Iyk1V]
>>246
ActiveReportって定型のフォーマットしかできないイメージなんですが、
グリッドの高さ変えたりページはみだす前に改行したりできますか?



248 名前:nobodyさん mailto:sage [2009/05/12(火) 12:00:02 ID:???]
>>247
フリーハンドで描画できるだろ。

249 名前:nobodyさん mailto:sage [2009/05/12(火) 12:03:03 ID:???]
>>247
CanGrowとかCanShrinkとか
まぁ・・・簡単な動的〜FORMATイベントとか駆使して複雑な動的ってのもできるっちゃぁ出来ると思うけど

たいがいの案件はこなせてきた

一回体験ばん入れて使ってみればどうかな?

250 名前:249 mailto:sage [2009/05/12(火) 12:03:47 ID:???]
だめだ・・・日本語が支離滅裂だ…
疲れてんのかな・・・

251 名前:nobodyさん mailto:sage [2009/05/12(火) 13:08:49 ID:???]
>>247
>グリッドの高さ変えたりページはみだす前に改行したりできますか?
設計が悪いだけじゃない?
改行したら自動的に2行分に伸長してくれて描画してくれるとか余裕だと思うけど

おおよその要求には応えてくれたけど、できないこともあるかもしれない
例えば1行に記述できず2行に伸長してくれたとき、
それがページの最下行だったら改ページして次ページの最上行にしてくれるとか、
もしくはそのまま印刷してくれるを選択できるとか、フッターの表示の関係とか。

グリッドの高さについては、サンプルのCreating and Modifying Report Layouts at Run Time
にあるように実行時調整してしまえば、可能と思われる(英語版ですまん)

>The format event allows the properties of report sections and controls
>to be modified including height, visibility, and other visual properties.
//フォーマットイベントでは、レポートセクションやコントロールの高さや表示/非表示などを含む
//表示に関するプロパティを変更することができる

252 名前:nobodyさん mailto:sage [2009/05/12(火) 13:13:33 ID:???]

すまん上の「できない例」は想像の話。
グループヘッダーとか、レポートのフッターの改行とか伸長とか、改ページごとに表示するとかは
帳票によってクセがあったり得手不得手があるもんなので、試してみるしかないね。

253 名前:nobodyさん mailto:sage [2009/05/12(火) 13:26:34 ID:???]
>>251
ActiveReportsならASP.NETのも基本的に変わらないけど

>改行したら自動的に2行分に伸長してくれて描画してくれるとか余裕
CanGrowプロパティだったかな? で伸縮させるように出来る

>それがページの最下行だったら改ページして次ページの最上行にしてくれるとか、
>もしくはそのまま印刷してくれるを選択できるとか
プロパティいじるだけでそうなるはず。
KeepTogetherかなんか忘れたけど

高さ操作は処理中にしようと思うと基本的にFormatイベントでのみしか推奨されていないけどいける

中途半端な知識なんで勘違い多いかも知れんが

254 名前:nobodyさん mailto:sage [2009/05/13(水) 10:29:56 ID:???]
CustomValidatorを継承したコントロールを作ったんだけど、
ページ内のValidationSummaryがErrorMessageを拾ってくれない。
isValidやErrorMessageは正しくセットされていることは確認した。
カスタムコントロールのは拾ってくれないのかな?

255 名前:nobodyさん mailto:sage [2009/05/13(水) 11:41:36 ID:???]
継承って文字通り継承?
それともユーザコントロール?



256 名前:nobodyさん mailto:sage [2009/05/13(水) 13:01:18 ID:???]
文字通りの継承。
検証失敗時にTextが表示されるし、
ValidationGroupも検知して検証してくれている。
ただ、なぜかValidationSummaryに反映されない。
もちろんPage.IsValidもfalseになってる。

257 名前:nobodyさん mailto:sage [2009/05/13(水) 14:31:56 ID:???]
Page.GetValidators()を調べてみたんだが、
単にメンバに持ってるValidatorCollentionをsingletonで返してるだけなんだな
どうやってValidatorCollentionにValidator(BaseValidator)をaddしてるのかよくわからん
ValidatorCollentionの中身も単なるIEnumerableを実装したリストクラスに見えるし

258 名前:sage mailto:sage [2009/05/13(水) 15:35:29 ID:???]
チラ裏
今更ながらIIS+ASP.NET+SQLiteでゴニョゴニョしてみたけど、手軽で良いわこれ。
要IIS(monoっつー手もあるけど保留)な点さえクリア出来るなら、ちょっとしたページ作成なら
これでいいや。

259 名前:nobodyさん mailto:sage [2009/05/13(水) 15:38:24 ID:???]
オレもこれやりたくてmono入れようとしてるけどSolarisだときっついな
まあ時間取れるまでWinサーバ使うか・・・

260 名前:nobodyさん [2009/05/13(水) 19:23:50 ID:EB+s12M/]
.NET Framework 3.0のPage.PreviousPage.FindControlについて教えてください。
トップページにある「発言ボックス」に入力した文字列を、表示ページにて表示したいのですが
テキストボックスを参照できなくて困っています。

マスターテンプレート(Template.master)
 ┗トップページ (Default.aspx)
    ┗ユーザコントロール(Hatsugen.ascx ID=hatsu)
       ・テキストボックス コントロール(ID=moshi)
       ・ボタン コントロール(botan)

マスターテンプレート(Template.master)
 ┗表示ページ (showhatsugen.aspx)

という2つのページ(階層)があるのですが、トップページ側のボタンコントロールで
PostBackUrl="showhatsugen.aspx" としています。
showhatsugen.aspx側で、@ITの記事を参考にテキストボックス(moshi)を参照しているのですが
nullが返ってきてしまいます。

■試したこと
@@ITの記事のまんま試してみた。
TextBox a = (TextBox)Page.PreviousPage.FindControl("moshi");

Aユーザコントロールも参照しないとだめかもと試してみた。
TextBox a = (TextBox)Page.PreviousPage.FindControl("hatsu").FindControl("moshi");

Bテンプレートもいれないとだめかもと思って試してみた。
TextBox a = (TextBox)Page.PreviousPage.Master.FindControl("hatsu").FindControl("moshi");

上記のような階層の場合、どのように値を参照できるか教えてください。

■参考にした@ITの記事
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/406asppostback1/asppostback1.html

261 名前:nobodyさん [2009/05/13(水) 19:37:56 ID:EB+s12M/]
あ、できました。Bで。

262 名前:nobodyさん mailto:sage [2009/05/13(水) 19:45:55 ID:???]
PostBackは原則的に同一ページにするのが望ましいというのはわかってて、
あえてそれをやってるんだよね?

263 名前:nobodyさん mailto:sage [2009/05/13(水) 20:05:04 ID:???]
はぁ? 馬鹿じゃね。しねよ

264 名前:nobodyさん mailto:sage [2009/05/13(水) 20:21:45 ID:???]
そこらの本読むとPostbackUrlやServer.Transferの方が
Response.Redirectよりよく思えるんだよな。
いやまぁ実際メリットもあるけど。

265 名前:nobodyさん mailto:sage [2009/05/13(水) 22:50:11 ID:???]
ASP.NET MVCのほうが良いよ。



266 名前:nobodyさん mailto:sage [2009/05/13(水) 23:01:05 ID:???]
PostbackUrlが良いと言ってるやつは実践してみてないやつ。
ASP.NETの各種仕組みと相性が悪い。

Server.Transferはいいんだけど。URLが紛らわしくなるため敬遠されることが多い。


267 名前:nobodyさん mailto:sage [2009/05/13(水) 23:49:01 ID:???]
一つの画面に収まる機能は一つのページに記述して
異なるページに遷移するときはsessionだのcookieだの使用したほうがわかりやすいよね
asp.netの場合は1ページが1クラスだから、
クラス内の処理は、なるべくクラス内に責任もって記述してあげるのが
オブジェクト指向の観点からもわかりやすい気がする

各ページのクラスにCookieやSessionを扱う、
ICookieや、ISessionみたいなインターフェースを実装して、
Serializableなデータを保持するクラスを、
ページ間でやりとりできるようにしたら面白いのになと思ったり。

268 名前:nobodyさん mailto:sage [2009/05/14(木) 00:02:25 ID:???]
>>267
うちはページ継承してベースページを作成して
各機能ページはそれを継承して処理ってる

セッション管理とかログインしているいないとかのチェックはベースページ側でやってたり

インターフェイスもいいけどなんか使いどころが難しくってさ・・・
各ページで実装もセにゃいかんし
レベルが低いだけだとは思うが


269 名前:nobodyさん mailto:sage [2009/05/14(木) 00:15:25 ID:???]
やたらとインターフェイス使いたがるのもどうかしてる

270 名前:sage [2009/05/14(木) 11:53:07 ID:W6V8lEeJ]
はじめまして。
現在vs2008、.NET FrameWork3.5にてASPのシステムを作成しています。

セッションが切れた場合の処理としてテストしているのですが
global.asaxでsession_startでセッションが切れた場合にエラー画面へ
リダイレクトする処理を入れているのですが
そこを通った後またsession_startに来てしまいリダイレクトしてくれません。
ログをみてもその関数が終わったらすぐにその関数というようになっています。

原因を知っている方お願いいたします。

If Me.Request.RawUrl.IndexOf("XXX.aspx") < 0 Then
If Session("UserId") = "" Then
Response.Redirect("XXXXX/ERRGAMEN.aspx")
End If
End If



271 名前:nobodyさん mailto:sage [2009/05/14(木) 12:33:07 ID:???]
これかな?
エラーページにResponse.Redirectで遷移すると
設定したSessionが消えてしまうことがあるらしい
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=10653&forum=7

ログやそれに似た用途ならglobal.asaxでもいいけど
認証ならフォルダごとにWeb.configでやったほうがいいかも

272 名前:270 mailto:sage [2009/05/14(木) 13:26:27 ID:???]
>>271
的確なアドバイスありがとうございます。
リダイレクトをtransferにすることで対処できました。

273 名前:nobodyさん mailto:sage [2009/05/14(木) 15:08:04 ID:???]
ここASP.NETだけど・・・


274 名前:nobodyさん mailto:sage [2009/05/14(木) 15:18:31 ID:???]
WebフォームにCalendarコントロールを貼って
・日付が変更される毎にカウンターCcountを1増加させて表示(Label1)
・選択されたカレンダーの日付を表示(Label2)
・PageLoadされる毎にカウンターPcountを1増加させて表示(Label3)
させたい。

Partial Class _Default Inherits System.Web.UI.Page
 Public Shared Pcount As Integer
 Private Ccount As Integer

 Protected Sub Calendar1_SelectionChanged(ByVal sender As Object, ByVal e As _
 System.EventArgs) Handles Calendar1.SelectionChanged
  Ccount = Ccount + 1
  Label1.Text = Ccount.ToString 'Calendarの日付が変更された回数を表示

  'カレンダーの日付を選択したら、カレンダーの値を表示する
  Label2.Text = Calendar1.SelectedDate.ToShortDateString
 End Sub

 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
 Handles Me.Load
  Pcount = Pcount + 1
  Label3.Text = Pcount.ToString 'PageLoadされた回数を表示
 End Sub

End Class

カウンターの定義で、上記のように Public Shared ではなく Private にすると
数値が初回+1しただけで、それ以上増分されません。
何がいけないのでしょうか?

275 名前:nobodyさん mailto:sage [2009/05/14(木) 15:38:57 ID:???]
>>274
public shared PcountはASP.NET全体で利用するアプリケーション変数(グローバル変数)的なものだったと思う
privateにすると、そのPageのメンバ変数になるので、ポストバックすると新しいPageのインスタンスが生成されるから、
Pcountも新しいインスタンスの異なるメンバ変数扱いになってポストバック前のデータを保持しない

そう考えるとpublic sharedは便利と思うかもしれないけど、
複数の人が同時にそのページを利用すると、使用した人の数だけPcount++されてしまって
思ったような動作はしないと思うよ
Aさんが日付選択→Pcount → 1
Bさんが日付選択→Pcount → 2
Aさんが日付選択→Pcount → 3 
Aさん2回目の使用でPcount==2のはずなのに途中でBさん使ったのでなぜかPcount==3

なんでPcountの値をセッションやクッキー、ViewStateに保存して
Page_Loadで復元するような処理を書く必要がある
この場合同じページへのPostBackだしセキュリティにも大きな影響を与えなさそうなので、
ViewStateがいいと思う



276 名前:nobodyさん mailto:sage [2009/05/14(木) 16:02:31 ID:???]
早速のレスありがとうございます。

>privateにすると、そのPageのメンバ変数になるので、
>ポストバックすると新しいPageのインスタンスが生成されるから、
>Pcountも新しいインスタンスの異なるメンバ変数扱いになって
>ポストバック前のデータを保持しない

ということですね、理解しました。

データの保持の違いとか、処理タイミングとか、実行順とかまだ整理できて無くて
そのために簡単なサンプルフォームを作って、カウンター表示を仕込んで試しているのですが
条件が変わると自分の狙った内容と実行結果が違ってたりして、・・・頑張ります!

277 名前:nobodyさん mailto:sage [2009/05/15(金) 19:06:29 ID:???]
Web開発の初期に、よくはまる道だ
がんばれ

278 名前:nobodyさん mailto:sage [2009/05/15(金) 21:06:17 ID:???]
JavaScriptで好き勝手やって、ViewStateの内容と
同期しなくなるとか昔はまったな。
挙句、不正な操作扱いされたりとか。

279 名前:nobodyさん mailto:sage [2009/05/15(金) 21:07:23 ID:???]
肝心なのはPublicかPrivateかじゃなくて
Sharedかそうじゃないかなんだが、大丈夫か

280 名前:nobodyさん mailto:sage [2009/05/16(土) 00:33:16 ID:???]
最近VB.NETでのレスをよく見かけるが、実業務のasp.netでもVBって多いのか?
言語の優劣を語る気はないがなんとなく気になったC#使い。

281 名前:nobodyさん mailto:sage [2009/05/16(土) 02:18:45 ID:???]
もともとのASPがVBだから、その流れでVBが多いんじゃない?
業務系もVB6の流れを汲むところは、今でもVB.NETが多いし

新しい言語に切り替えるって難しいよね
新しいテクノロジに理解があるところばかりじゃないし
過去の資産に縛られたりして


282 名前:nobodyさん mailto:sage [2009/05/16(土) 03:21:32 ID:???]
で旧VBで下手に培われてしまった悪しき習慣が.NETにも浸食するんだぜ。
VBの頃はネットが普及したせいで、ばかみたいなコードや習慣が広がりすぎた。
でその悪しき習慣をASP.NETとかにまでそのまま持ってくるもんだからとんでもないことに。


283 名前:nobodyさん mailto:sage [2009/05/16(土) 03:24:32 ID:???]
>>280
俺はC#だ
VBなんて見ただけで寒気がする

284 名前:nobodyさん mailto:sage [2009/05/16(土) 04:40:23 ID:???]
質問
1.Global.asaxはシングルトンか?
2.Global.asaxにインスタンス変数を定義して、HttpContextのようにリクエストに関する情報を保持するのは問題ないか?
3.BeginRequestイベントとHTTPハンドラ(ページインスタンスなど)は常に同一スレッドで実行されるか?
4.ViewStateUserKeyはCSRF対策に利用できるか?
5.Global.asaxにインスタンス変数を定義して、グローバル変数として使えるか?
6.汎用ハンドラ(ashx)でIsReusableがtrueを返すように実装すると、そのハンドラは基本的に再利用されるものと期待できるか?
7.グローバル変数が必要な時Applicationオブジェクトを定義するのは望ましい方法か?
8.サーバを分散していない場合、ApplicationオブジェクトはそのWebアプリケーション内で完全に一つとみなしてよいか?
9.ViewStateは基本的に改ざん防止策がほどこさえているので、ViewStateの値は基本的に信用してよいか?
10.Webガーデンを使用していないのに、そのアプリケーションプール用のワーカープロセスが複数同時に動作することはあり得るか?
11.認証チケットはデフォルトで暗号化されているため、HTTPSでなくても安全か?
12.フォーム認証でログアウトすると、その認証チケットでは二度とアクセスできなくなるか?
13.SQLインジェクションは、Webアプリケーション特有の脆弱性か?


285 名前:284 mailto:sage [2009/05/16(土) 12:15:07 ID:???]
ちなみに俺はリアルモンク属性だからはやく答えないと病院食を食うことになる



286 名前:nobodyさん mailto:sage [2009/05/16(土) 12:23:16 ID:???]
自分で調べろって感じだな

287 名前:284 mailto:sage [2009/05/16(土) 12:36:25 ID:???]
実は理解度クイズだよ。
正答率は自称詳しい人でも結構低かったりもする。

>>285誰だよおまえはw


288 名前:284 mailto:sage [2009/05/16(土) 12:38:15 ID:???]
とでも書けば、誰かが答えてくれるに違いない

289 名前:nobodyさん mailto:sage [2009/05/16(土) 12:44:04 ID:???]
いやいやクイズという限り、いつか出題者が回答するから問題ない

290 名前:nobodyさん mailto:sage [2009/05/16(土) 12:46:21 ID:???]
まあ言われてみれば誤解さえれそうだが、ほんとにクイズだよ。
俺がさっきちょっと考えてみただけの。
テストや宿題じゃなくて(っていうか中身見りゃわかるだろうけど、そういうレベルの問題じゃない)
正解は○がって数書こうと思ったけど、結構偏ってるな、疑うなら書くが。

問題のニュアンスはわりと詳しいつもりやつが理解してないことが多かったもの。
その前に内容がマニアックに偏ってるけどな。


291 名前:nobodyさん mailto:sage [2009/05/16(土) 12:58:07 ID:???]
こんな?

1× 2× 3? 4○ 5× 6? 7× 8○ 9○ 10?
11○ 12? 13×

?のとこはワカンネ
あと設定次第だったり、環境次第だったりするところがあるよね
ViewStateUserKeyが空文字の場合とか、
認証チケットは暗号化されてるけど認証に至るまでの経緯でhttpsでないと安全でない場合とか

292 名前:nobodyさん mailto:sage [2009/05/16(土) 13:04:00 ID:???]
いや8も×か 中身じゃなくてApplicationオブジェクトそのものは別インスタンスかな


293 名前:nobodyさん mailto:sage [2009/05/16(土) 13:08:00 ID:???]
正解は5個、かな?(ざっと確認してみたから間違ってたらすまんね)

環境しだいだったりするのは確かにあるが、
環境を特殊にどうこうした場合とかではなくて
一般的な標準的な状態と思ってもらっていい。
ViewStateUserKeyの場合はもちろん文字列をうまく設定すれば普通に利用できるか?という話だし、
認証チケットの扱いも特殊な状況は想定していない。
単にHTTPSじゃない経路で認証チケットを使うのは安全か?(認証チケット自体は暗号化されているが)。
ということ

Applicationオブジェクトは、そこに保存した変数というか、中身のことと思ってくれていいよ。
書き方悪かったな、いわゆるApplication変数はサーバ内で完全に一つと思っていいか?ということ。

294 名前:nobodyさん mailto:sage [2009/05/16(土) 15:53:09 ID:???]
いやいや気になるから正確な答えを頼むよw


295 名前:nobodyさん mailto:sage [2009/05/16(土) 16:34:45 ID:???]
2 4 9 10 が○
それ以外は×だよ




296 名前:nobodyさん mailto:sage [2009/05/17(日) 06:17:41 ID:???]
基本的にとか、望ましいとか言っちゃうとあいまいさがのこるから
問題文もう1回精査してから回答とともにアップしなおしてくれ

297 名前:nobodyさん mailto:sage [2009/05/17(日) 09:24:47 ID:???]
やだよめんどくさい。

1.Global.asaxのインスタンスはアプリケーションドメイン内で単一である
2.Global.asaxにインスタンス変数を定義するば、HttpContextのようにリクエストに関する情報を保持することができる
3.BeginRequestイベントとHTTPハンドラ(ページインスタンスなど)は常に同一スレッドで実行される
4.ViewStateUserKeyにユーザIDやセッションIDを設定すると、はCSRF対策にも利用できる
5.Global.asaxにインスタンス変数を定義すると、グローバル変数として使える
6.汎用ハンドラ(ashx)でIsReusableがtrueを返すように実装すると、そのハンドラは可能な限り再利用される
7.グローバル変数が必要な時はApplication変数を使用しなければならない
8.サーバを分散していない場合、Application変数はそのWebアプリケーション内で完全に一つである
9.ViewStateの検証が有効(デフォルト)の場合は、ViewStateの値にはインジェクション系の対策は不要である
10.Webガーデンを使用していない場合でも、そのアプリケーションプール用のワーカープロセスが複数同時に動作することはあり得る
11.認証チケットはデフォルトで暗号化されているため、HTTPSでなくても安全である(盗聴されても不正ログインはできない)
12.フォーム認証でログアウトすると、その認証チケットは無効となり、その認証チケットでは二度とアクセスできなくなる
13.SQLインジェクションは、Webアプリケーション特有の脆弱性である

1.×
2.○
3.×
4.○
5.×
6.×
7.×
8.×
9.○
10.○
11.×
12.×
13.×


298 名前:nobodyさん mailto:sage [2009/05/17(日) 11:05:51 ID:???]
>>295以上の情報が何もないじゃないか

解説ぐらい書けよ

299 名前:nobodyさん mailto:sage [2009/05/17(日) 12:05:47 ID:???]
自分で調べろよw

300 名前:nobodyさん mailto:sage [2009/05/17(日) 12:14:56 ID:???]
今携帯だから後で書くよ。
疑問のある番号あるなら疑問点を書いてね。


301 名前:nobodyさん mailto:sage [2009/05/17(日) 12:40:24 ID:???]
5.Global.asaxにインスタンス変数を定義すると、グローバル変数として使える
インスタンス変数ってのは、スタティックじゃない変数ということかな?
Global.asaxにPublicな変数定義しとけば、グローバルに使えると思うんだが


302 名前:nobodyさん mailto:sage [2009/05/17(日) 13:12:04 ID:???]
そ、スタティックじゃないってこと。

303 名前:nobodyさん mailto:sage [2009/05/17(日) 13:16:28 ID:???]
単にグローバル変数ってのもやや曖昧だったね。
ここでは、アプリケーション全体で共有できるグローバル変数という意味。
まあだいたい一般的にこういう意味になるとは思うが。


304 名前:nobodyさん mailto:sage [2009/05/17(日) 16:45:45 ID:???]
クイズ
1.Global.asaxのインスタンスはアプリケーションドメイン内で単一である
2.Global.asaxにインスタンス変数を定義すると、HttpContextのようにリクエストに関する情報を保持することができる
3.BeginRequestイベントとHTTPハンドラ(ページインスタンスなど)は常に同一スレッドで実行される
4.ViewStateUserKeyにユーザIDやセッションIDを設定すると、CSRF対策にも利用できる
5.Global.asaxにインスタンス変数を定義すると、アプリケーション全体で共有できるグローバル変数として使える
6.汎用ハンドラ(ashx)でIsReusableがtrueを返すように実装すると、そのハンドラは可能な限り再利用される
7.グローバル変数が必要な時はApplication変数を使用しなければならない
8.サーバを分散していない場合、Application変数はそのWebアプリケーション内で完全に一つである
9.ViewStateの検証が有効(デフォルト)の場合は、ViewStateの値にはインジェクション系の対策は不要である
10.Webガーデンを使用していない場合でも、そのアプリケーションプール用のワーカープロセスが複数同時に動作することはあり得る
11.認証チケットはデフォルトで暗号化されているため、HTTPSでなくても安全である(盗聴されても不正ログインはできない)
12.フォーム認証でログアウトすると、その認証チケットは無効となり、その認証チケットでは二度とアクセスできなくなる
13.SQLインジェクションは、Webアプリケーション特有の脆弱性である


305 名前:nobodyさん mailto:sage [2009/05/17(日) 16:49:05 ID:???]
回答
1.×Global.asaxは各リクエストに一つのインスタンスが割り当てられる(リクエスト完了後はプールされて再利用)
2.○1.より、リクエストに関する情報をインスタンス変数に保持することができる
3.×セッション準備時の同期化などの仕組みにより、スレッドが切り替わることがある
4.○もちろん使える
5.×1.より、インスタンス変数はアプリケーション全体で共有できない
6.×実はIsReusableは無視されている(常に再利用されない、まあこれは今の実装の話であってどうでもいい話ではある)
7.×そんなわけはない(むしろApplication変数はあまりお薦めではない、これにはいろいろ理由があるが)
8.×Webガーデンを使えば単一にはならない、またアプリケーションのリサイクルなどにより一時的に複数になり得る
9.○検証が有効であれば、少なくとも中身を改ざんされることはない(キーが漏れてるとかそういう状況はない前提)
10.○ワーカプロセスのリサイクルにより、一時的に複数同時に動作することがある
11.×盗聴されれば見事に不正アクセスできる(チケットの暗号化の意味はまた別にある)
12.×認証チケットは無効にはできない(ログアウトはクッキーを消すだけ)、とくに有効期限が長い場合これは要注意
13.×そんなわけはない




306 名前:nobodyさん mailto:sage [2009/05/17(日) 20:31:50 ID:???]
こういうのは問題の出し方が難しいな
主眼をどこに置くかで結果が違いそうなこともありそうだ

それはともかく知らないことがいくつかあったので勉強になったよ
今度実験してみようっと

307 名前:nobodyさん mailto:sage [2009/05/18(月) 18:33:02 ID:???]
.NETっでviewState OFF設定にしても、実行したら勝手にviewStateが入ってるんだけどなんでなんだろう?


308 名前: [―{}@{}@{}-] nobodyさん mailto:sage [2009/05/18(月) 18:35:32 ID:???]
>>307
イベント識別するのにもViewState使ってたと思うからその分じゃね

309 名前:nobodyさん mailto:sage [2009/05/19(火) 01:35:59 ID:???]
でも.NETでできてるサイトで、ソース(htmlの)みてもviewStateが一切無いページとかあるんだよね。
つまり.NETのコントロール一切使わなければ出ないって事かな?
それだと.NET使う意味ねーな・・・

310 名前:nobodyさん mailto:sage [2009/05/19(火) 01:54:25 ID:???]
例えばどこ?

311 名前:nobodyさん mailto:sage [2009/05/19(火) 01:55:28 ID:???]
ああそうだMVCならでないかもね

312 名前:nobodyさん mailto:sage [2009/05/19(火) 21:35:47 ID:???]
なんか、viewstate="false"ってやってても
<asp:CheckBox id="CheckBox1" runat="server" />
がたくさんあると、viewstateがえらいことになる・・・・

なんとかしてOFFにしたいもんだ

313 名前:nobodyさん mailto:sage [2009/05/19(火) 22:02:16 ID:???]
実際に20個設置してみたけど、これがえらいこと??
PostBack前の状態を維持する仕組みをhiddenフィールドで
ベタに構築することを考えたら遙かにサイズは小さいと思うし、
セキュリティ的にも安心できるし、
十分に利便性はあると思うけど

それを考慮してもViewStateが嫌ならASP.NETを使わないか
旧ASPとして利用するしかないね

314 名前:nobodyさん mailto:sage [2009/05/19(火) 23:02:51 ID:???]
enableviewstate=falseの意味ねーじゃん
ばか?

315 名前:nobodyさん mailto:sage [2009/05/19(火) 23:11:27 ID:???]
20個設置してたら2kぐらいの文字列にならん?



316 名前:nobodyさん mailto:sage [2009/05/20(水) 00:04:28 ID:???]
<form runat="server">を使わなければviewstate撲滅できるよ
使えるコントロールが限られるけど

317 名前:nobodyさん mailto:sage [2009/05/20(水) 00:25:56 ID:???]
>>314
falseに設定したものはviewstate反映されてないだろ?

318 名前:nobodyさん mailto:sage [2009/05/20(水) 01:07:46 ID:???]
>>317
試してから言えよ

319 名前:nobodyさん mailto:sage [2009/05/20(水) 13:35:47 ID:???]
>>318
falseにしたコントロールやページに関してはViewStateに反映されないよ
ただASP.NETとして必要なぶんが反映されてるだけ

320 名前:nobodyさん mailto:sage [2009/05/20(水) 14:49:36 ID:???]
んだな

>ASP.NET によって使用されるページには、ポストバックを検出することを目的として、
>EnableViewState が false の場合でも読み込まれる非表示のビューステート フィールドが存在する場合があります。
ちゃんとMSDNにも書いてある。つまりASP.NETの仕様。

phpでも、ページからのpostであることを示すために、
hidden fieldで<input type="hidden" name="mode" value="postback">とかして、
$mode = $_POST["mode"];で受け取ってpostbackが入っていたらpostされたと認識して
初期処理したりするけど、それをViewStateを利用して実現してる。

これすら嫌ならもはやwebアプリは向いてないから止めたほうがいいと思う。
それかすべてsessionでやる。
モバイルASP.NETはこのViewStateの仕組みを一部のコントロールを除いて
ViewStateでなくてsessionでやってるよ。

321 名前:nobodyさん mailto:sage [2009/05/20(水) 15:52:47 ID:???]
ViewStateだとドロップダウンリストの選択位置とか覚えておいてくれるから便利。
PHPとかで実装しようとすると大変だろうな

322 名前:nobodyさん mailto:sage [2009/05/20(水) 16:52:27 ID:???]
基地外ばっかり

323 名前:nobodyさん mailto:sage [2009/05/20(水) 17:51:12 ID:???]
>>321
大変ではないけどめんどくさいだけ
便利なのには違いない

つうか、必要でないViewStateだけ残して切ればいいじゃん
それすら嫌とか言うなら論外だろ

何かデータを保持るためのInputとかを別の形で実装してるようなもんじゃないか


324 名前:nobodyさん mailto:sage [2009/05/20(水) 18:01:54 ID:???]
ViewState切り詰め話はTechNet辺りでもよく出てるが、
大した問題にならないから無視しろか、
サーバーコントロールは極力使わなずResponse.writeしろの、
大体この二つに分かれてる感じだな。

一時期俺も削減に躍起になってたけど、そもそもASP.NETって時点で…
と気づいてからは余りこだわらなくなったな。

325 名前:nobodyさん mailto:sage [2009/05/20(水) 21:21:01 ID:???]
10KBのViewStateには超文句言うのに平気で数十KBの画像おきまくったりするページワロス




326 名前:nobodyさん mailto:sage [2009/05/21(木) 00:42:51 ID:???]
画像は受信拒否できるしなぁ
ViewStateは問答無用だろ。。

327 名前:nobodyさん mailto:sage [2009/05/21(木) 00:45:50 ID:???]
制作者からの視点で論じてたんじゃないのか?

328 名前:nobodyさん [2009/05/21(木) 01:36:07 ID:/8BtlCky]
ViewStateこつこつ削ってどれだけ結果に違いが出るんだよ。ほぼ意味ねーだろ。こういう所に拘るPGはマジ使えねぇ。


329 名前:nobodyさん mailto:sage [2009/05/21(木) 02:38:51 ID:???]
携帯みたいな従量課金の場合には影響があるので
気になるプログラマはいると思う

んで、ユーザ数が多いと、そういうコツコツが大事だったりするので、
なんでViewStateを完全に無くすことができないかを知りたいと思う好奇心は
プログラマに必要な資質だと思う

だけど、ViewStateの動作を詳しく把握してもいないのに
ViewStateの存在を制御できないから気持ち悪いとか、
こんなにViewStateがたくさん埋め込まれるのは理解できない
みたいなこと言ってるプログラマがいたら確かに使えない奴だと思う

330 名前:nobodyさん mailto:sage [2009/05/21(木) 04:14:36 ID:???]
>携帯みたいな従量課金の場合には影響があるので
>気になるプログラマはいると思う

普通自動でセッションに保存されるでしょ

331 名前:nobodyさん mailto:sage [2009/05/21(木) 07:40:13 ID:???]
例えばGoogleの検索結果なんかはそのままブックマークできるけど、
そういうのやろうとすると邪魔じゃね?viewstate。

332 名前:nobodyさん mailto:sage [2009/05/21(木) 08:20:41 ID:???]
意味がわからん。
ViewStateに対して間違った期待をしてないか。

333 名前:nobodyさん mailto:sage [2009/05/21(木) 13:12:01 ID:???]
ブックマークさせたいならGETだけでアクセス出来るようにしとくだけ。
ポストバックの結果をブックマークしたいなんてことしなければ。

334 名前:nobodyさん mailto:sage [2009/05/21(木) 14:32:49 ID:???]
当たり前のことだがASP.NET使ってるんだからそれに見合う環境は用意するべきだろ


335 名前:nobodyさん mailto:sage [2009/05/21(木) 14:46:42 ID:???]
みなさんSeasar.NETやEntlibなどのフレームワークは利用されていますか?
参考までにそのメリット・デメリットなどご意見いただけないでしょうか。



336 名前:nobodyさん mailto:sage [2009/05/21(木) 14:59:13 ID:???]
ENTLIB大袈裟
S2.NET合わない

337 名前:335 mailto:sage [2009/05/21(木) 15:29:27 ID:???]
>>336
そうですか。
紹介している記事もちらほら見かけるし、一見便利そうだったんで
使うのが一般的なのかとおもったのですが、そうでもないんですかね。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<262KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef