私は現在、C#WinFormsアプリケーションでWebBrowserコントロールを使用しており、このコントロールで提示されるいくつかの変動を制御しようとしています。
基本的に、ユーザーはアプリケーションが提供する別のUIにログインします。このUIは、WebBrowserコントロールを表示し、所定のログインURLに移動して、そのページのユーザー名とパスワードのフィールドに自動入力します。
ただし、このWebBrowserコントロールでの予期しない動作を防ぐために、これらのユーザー名とパスワードのテキストボックスは、自動入力された後は読み取り専用にします。基本的に、ユーザーが入力済みで編集できないブラウザページをユーザーに表示してもらいたいと思います。(これは、認証エラーをブラウザーではなくアプリケーションで処理できるようにするためです。)
テキストフィールドにデータを入力して読み取り専用にするために現在使用しているコードは次のとおりです。
webBrowser1.Document.GetElementById("username").InnerText = username;
webBrowser1.Document.GetElementById("password").InnerText = password;
webBrowser1.Document.GetElementById("username").Enabled = false;
webBrowser1.Document.GetElementById("password").Enabled = false;
残念ながら、フィールドを読み取り専用にしようとすると、認証サーバーはパスワードフィールドが入力されていないように動作し、[送信]ボタンをクリックした後にユーザーにもう一度入力するように求めます。これは予想される動作ですか?もしそうなら、ユーザーがブラウザーに自動入力された資格情報を変更できないようにするために、他にどのような方法を試すことができますか?