0

状況は次のとおりです。コンソールアプリケーションは、1日に1回実行し、表示するために認証が必要なページにいくつかリクエストする必要があります。ページは本当に基本的なASP.Net Webアプリケーションでホストされています。コンソールアプリケーションとASP.NET認証

私は、リクエストが正常に進むために、サーバーで認証する必要があることを知っています。だから、私はWebアプリケーションのために使用しているASP.Netメンバシッププロバイダにコンソールアプリケーションを接続し、資格情報のセットが有効かどうかを判断します。しかし、Membership.ValidateUser()を呼び出した後、私はログイン画面を取得します。いくつかの読書をした後、これは私のログインやあなたのものを保持する重要なクッキー情報が欠落しているためです。

私は基本WebClientを使用してリクエストを作成し、その結果を読み込み/破棄しています。

質問の要点は次のとおりです。ログイン情報を検証し、リクエストを成功させるための簡単な方法はありますか?これは他の2つの質問と全く同じです。 WebClientにlogin.aspxページへの「手動」ログイン要求を行い、そこからのクッキーを保持しようとする必要があることが判明しましたか?私が参照してる

質問は以下のとおりです。FormsAuthenticationと共に

Authenticating ASP.NET MVC user from a WPF application

Login to website and use cookie to get source for another page

+0

このウォークスルーを見たことがありますか? http://msdn.microsoft.com/en-us/library/bb515342.aspx – David

答えて

0

ウェブサーバがあなたのためのフォーム認証チケットを生成することがあります。これを行うための最良の(唯一の)方法はサイトにログインすることなので、他の質問と同様にログインします。

0

サーバーにデータを送信したり、サーバーからデータを取得する場合は、ASMXまたはWCFを使用してWebサービスを作成するのが最も論理的なアーキテクチャです。その後、ユーザートークンやSAMLトークンなどのセキュリティトークンを使用するようにサービスを構成します。これにより、サーバーコードがデータモデルを変更したときにクライアントが壊れにくくなります。

基本WebClientのみを使用する場合は、ログインページに資格情報を渡し、ログイン要求から返されたログインCookieを保持する方法を見つける必要があります。次に、「Cookieを使用してWebサイトにログインし、別のページのソースを取得する」と言われているStack Overflowの質問と同様に、ログインCookieがすべての後続のRequetsに含まれていることを確認します。