2011-08-23 11 views
8

これは私を混乱させるものです。 webmethodは、web.configで設定されているのと同じ認可ルールに従っていると仮定します。最初に通常のページライフサイクルを実行しますか?私の場合、ベースページに余分なパーミッションがあるかどうかをチェックする余分なロジックがあります。このロジックは、webmetodが呼び出される前に実行され、そのページへのアクセスが許可されていないユーザーからのアクセスを防止しますか?コードビハインドのWebメソッドは、そのページと同じ安全なものですか?

+0

余分なロジックはどのように実装されていますか?どのようなイベントが実行されますか? – Oded

+0

同じWebアプリケーションにASMXとASPXがある、つまり同じweb.configの下にASMXとASPXがあることを意味します。別のWebアプリケーションでASMXを呼び出す場合は、それは異なるでしょう。 – Rup

+0

同じWebアプリケーションです。私はちょうどajax呼び出しはaspxのページから来るので、コードビハインドにwebmethodを置くだろう。私はおそらく、ハンドラを使用する方が良いだろうと認識していますが、このプロジェクトを完全に制御することはできないので、コード自体をページに含めることにします。 – Mike

答えて

7

Webメソッドは静的でなければならず、通常のASP.NETライフサイクルに従いません。

ウェブメソッドでは、セッションまたはページのコントロールにアクセスできません。

すべてのイベントを処理するわけではありませんので、PreInitが呼び出されるとは思わないので、アクセスを制限することはできません。

1

ボトムラインはウェブメソッドであり、従来のasmxウェブメソッドを使用するよりもはるかに安全です。 /default.aspx/MyWebMethodのメソッドがぶら下がっているかもしれませんが、ビルトインされたフォームセキュリティは使用されず、アプリケーションのどこからでも呼び出すことができます。

関連する問題