- - PR -
二度押し禁止処理について(DHTML編)
«前のページへ
1|2|3|4
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-07-10 16:36
既に解決しているようですが、私も同様に悩んだことがあったので、他にこんな手法もありますよって感じで投下しておきます。
[適当な説明] ・RegisterOnSubmitStatement にて <form> の onsubmit を捕捉し、クライアントスクリプトを呼び出すようにする ・Render をオーバーライドし __doPostBack へ クライアントスクリプトを呼び出すように追記する [欠点] ・DropDownList の AutoPostBack までは抑制できない。 [追記] > ぜうす さん 揚げ足取りしかできない人は、放置しておくことをお勧めします。 [ メッセージ編集済み 編集者: 未記入 編集日時 2006-07-10 16:52 ] | ||||
|
投稿日時: 2006-07-10 17:11
OK。見直した。 他に有用なものも思い出した限りでいいから書いてちょ。 | ||||
|
投稿日時: 2006-07-10 17:27
ぜうすさん>で、もし解決できたのであれば、その方法を教えていただけないでしょうか?
ゼウスさん方式でもjittaさん方式でも私の思い通り二度押しを防ぐことができましたので報告いたします。未記入様のやりかたは、まだ試していないのですが・・・。 皆様本当にありがとうございました。 ▼ゼウスさん方式 1.button0,button1をHTMLフォームで作成 2.button0,button1にonclickイベントとstyle属性を追加する <input type="button" id="Button0" style="display:none" runat="server"> <input type="button" id="Button1" onclick="Button0.click();this.disable=true;"> ▼jittaさん方式 1.VB.NET コードのPage_Loadの中に Me.Button1.Attributes.Add("onclick", "return beforePost(this);") を追加する 2.aspxファイル中にJavaScriptを記述する(勿論外部参照のjavascriptファイルでも可) <script language="javascript"> function beforePost(sender) { sender.disabled = true; return true; } </script> | ||||
|
投稿日時: 2006-07-10 18:01
たびたびすみません。先ほどのjittaさん方式のソースは間違えていました。
これだと、vb側のイベントが走りません。 もう少し調べてみます。 ▼jittaさん方式 1.VB.NET コードのPage_Loadの中に Me.Button1.Attributes.Add("onclick", "return beforePost(this);") を追加する 2.aspxファイル中にJavaScriptを記述する(勿論外部参照のjavascriptファイルでも可) <script language="javascript"> function beforePost(sender) { sender.disabled = true; return true; } </script> | ||||
|
投稿日時: 2006-07-10 19:17
本当にたびたびすみません。jittaさんの言われていることをやりたいのですが、分かりません。なにかヒントを頂ければ・・・。
>そうではなく、クリックして、ポストする直前に、JavaScript にて disabled にして、 >その後、disabled = false の設定の(というか、書かれていない) HTML をサーバから >流してきて、それによって上書きしちゃおう、ということです。 | ||||
|
投稿日時: 2006-07-10 20:33
ココが参考になりませんか?
http://osada.bz/PermaLink.aspx?guid=b01b5502-5e06-4e87-a616-16c01610c08e | ||||
|
投稿日時: 2006-07-11 09:35
かるあさんありがとうございました。できました。
対応としましては、 Page_Loadの箇所に Me.Button1.Attributes.Add("onclick", "this.disabled='disabled';" + GetPostBackEventReference(Me.Button1).ToString()) を追加する | ||||
|
投稿日時: 2006-07-12 21:37
職場が変わって外が見にくくなっている間に進んでしまいましたね。申し訳ない。
「2.3.16 画面遷移制御とアプリケーション コントローラ」ですね。 ここでは、ブラウザの「進む」「戻る」にも対応できる、かつ、攻撃者からの攻撃に対しても防御効果の高い、ワンタイム・トークン、業務設計の工夫、アプリケーション コントローラの実装、を薦めています。その為、DHTML の実装については、端折っていると思われます。JavaScript を切られていると、使えませんし。。。 元々、エンタープライズ、大規模かつ一般公開されるものを対象に書かれていますから、より効果の望める方を優先していると考えられます。 たまたま、読んだんですよ(^-^; Web アプリの教科書的な本ですし。 ただ、今後、何かの本やサイトに書いてあったことから疑問を感じたなら、出典を明らかにしてください。同じ本を持っている、サイトを見た人が、読み飛ばしたり、理解できなかったところを補足してくれるかもしれません。 あるいは、その本、サイトが間違っているかもしれません。そのときは、著者に連絡してあげるべきだと思います。 かるあさん、フォローどうも。勉強になりました。 そっか、disabled だと、イベント登録しないのか。 |
«前のページへ
1|2|3|4