2010-07-06 74 views
3

是否有一個很好的和測試的一段代碼,在那裏,我可以用這個目的:測試憑據訪問網頁

獲取用戶名/密碼和web服務(ASMX頁)的地址,檢查用戶/通行證是否有效。

我想我應該使用HTTPRequest等來做到這一點,但我對這個話題沒有很好的認識,導致我目前的方法無法正常工作。

如果爲此目的有一段很好的代碼,我很欣賞指向我。

謝謝

P.S:我沒有在我的代碼中使用DefaultCredentials。因爲我希望他們輸入用戶名/密碼,所以現在我需要能夠測試他們的用戶/密碼,並在他們的憑證無效時向他們顯示正確的消息。

回答

1

您可以使用HttpWebRequest.Credentials Property(取決於Web服務身份驗證)和CredentialCache Class

同樣(從谷歌)的一些代碼的例子:
Retrieving HTTP content in .NET
聯合Invoking Web Service dynamically using HttpWebRequest.Credentials

+0

好的,謝謝,我看到你貼過該網頁,但在它的例子是這樣做的:「request.Credentials = CredentialCache.DefaultCredentials;」這不是我所需要的。我需要「測試」用戶輸入的用戶/密碼。 – Bohn 2010-07-06 15:23:42

+0

改爲使用您自己的CredentialCache實例(添加一個鏈接,以便查看方式)。 – 2010-07-06 15:31:25

+0

我沒有設置我的憑據的問題。只是我想要一個簡單的方法:獲取用戶名,密碼,asmx頁面地址並確定此用戶/密碼是否正確。就是這樣,我在你發佈的網頁上的任何地方都看不到它。感謝壽。 – Bohn 2010-07-06 15:35:30

1
public bool TestCredentials(string url, string username, string password) 
{ 
    var web = new WebClient(); 
    web.Credentials = new NetworkCredential(username,password); 

    try 
    { 
     web.DownloadData(url); 
     return true; 
    } 
    catch (WebException ex) 
    { 
     var response = (HttpWebResponse)ex.Response; 
     if (response.StatusCode == HttpStatusCode.Unauthorized) 
     { 
      return false; 
     } 

     throw; 
    } 
}