测试凭据以访问网页

时间:2010-07-06 15:07:39

标签: c# asmx xmlhttprequest credentials

那里有一个很好的,经过测试的代码,我可以用它来实现这个目的:

获取用户/通行证和Web服务(asmx页面)的地址,并检查用户/通行证是否有效。

我认为我应该使用HTTPRequest等来做到这一点,但我对该主题并不了解,导致我当前的方法无法正常工作。

如果有一个很好的代码用于此目的,我很感谢指出我。

谢谢

P.S:我的代码中没有使用DefaultCredentials。因为我希望他们输入user / pass所以现在我需要能够测试他们的用户/通行证,如果他们的凭证无效,则向他们显示正确的消息。

2 个答案:

答案 0 :(得分:1)

您可以使用HttpWebRequest.Credentials Property(取决于网络服务身份验证)和CredentialCache Class

还有一些代码示例(来自谷歌):
Retrieving HTTP content in .NET
Invoking Web Service dynamically using HttpWebRequest.Credentials结合使用。

答案 1 :(得分: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;
    }   
}