0

下面是情況,我有一個控制檯應用程序需要每天運行一次,並向需要身份驗證才能查看的頁面發出一些請求。這些頁面託管在一個非常基本的ASP.Net Web應用程序中。使用ASP.NET身份驗證的控制檯應用程序

所以,我知道爲了使請求成功,我必須通過服務器進行身份驗證。因此,我將控制檯應用程序連接到用於Web應用程序的ASP.Net成員資格提供程序,併成功確定一組憑據是否有效。但是,在調用Membership.ValidateUser()之後,我只需要獲取登錄屏幕。做了一些閱讀後,似乎這是因爲我錯過了重要的cookie信息,這些信息持續存在於我的登錄信息或您擁有的信息中。

我正在使用基本的WebClient進行請求,然後讀取/放棄結果。

所以問題的癥結在於:是否有一種簡單的方法來驗證登錄信息並保留它,以便我可以成功地發出請求,或者與其他兩個問題完全相同發現需要WebClient向login.aspx頁面發出「手動」登錄請求,並嘗試從那裏保存cookie?

我引用的問題是:

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 2011-01-05 20:30:44

回答

0

隨着FormsAuthentication的網絡服務器具有生成窗體身份驗證票給你。最好的(唯一的)方法是登錄到網站,所以我只是像其他問題一樣登錄。

0

如果意圖是將數據發送到服務器和/或從服務器獲取數據,那麼最合理的架構可能是使用ASMX或WCF創建Web服務。然後將服務配置爲使用安全令牌,例如用戶名令牌或SAML令牌。當服務器代碼更改其數據模型時,這將使客戶端不太可能中斷。否則,如果您只想使用基本的WebClient,則必須找到一種方法將憑據傳遞到登錄頁面並保留從登錄請求返回的登錄cookie。然後,確保所有後續請求中都包含登錄cookie,類似於您引用的「登錄到網站並使用cookie獲取其他頁面的源代碼」的堆棧溢出問題。

相關問題