シナリオ: 一連のルール (CRUD) を維持できる内部 ASP.NET サイトがあります。新しいルールを追加するには、HTML フォームに入力して [送信] をクリックするだけです。現在の問題は、数百のルールを追加する必要があり、スクリプトを使用してこれを自動化したいということです。
当初計画:
- X個の引数を取り、これらを使用して上記のWebページのフォーム送信を偽造できるスクリプトを作成します
- ルールごとに 1 つの行を持ち、各列が HTML フォームの入力タグの 1 つを表すコンマ区切りファイル (または類似のファイル) を作成します。
- コンマ区切りファイルを使用してフォーム送信スクリプトを行ごとに 1 回実行できる別のスクリプトを作成します。
私の試みはcurlを中心に行われ、オンライン テスト ページに対してうまく機能しました。残念ながら、ASP.NET ページに対して動作させることができず、Postback や Viewstate で何かを行う必要があると推測しています。
スニペット:
curl -s -u "DOMAIN\user:password" --ntlm -d "key1=value1" -d "key2=value2" http://internal/page.aspx
(GET を使用しているかのようにページを返します。エラー メッセージは表示されません)
質問:
Postbackを送信している ASP ページをだますにはどうすればよいですか? (別のスクリプトの提案も歓迎します)
編集:
ASP ページからのスニペット:
<asp:LinkButton ... runat="server" OnClick="lbAddRule_Click" PostBackUrl="~/Page.aspx" />
コードビハインドのスニペット:
protected void lbAddRule_Click(object sender, EventArgs e) {
if (Page.IsValid == true) {
AddRule(x,y,z);