安全HttpWebRequest所以我可以发送凭证吗?

时间:2013-01-30 17:01:48

标签: c# asp.net

我有以下代码连接到我的php服务器并从中检索数据。唯一的问题是,我需要从这个webrequest安全地发送用户名和密码到PHP服务器。查看webrequest类的文档,有一个凭证属性以及一个preauthenticate属性。我假设这些是用于网络凭证(我的所有用户都在AD中)。

是否可以使用凭据保护此帖子请求,或者这只是一个坏主意?我也找到了SetBasicAuthHeader - 我会读到这个并看看它是否有帮助。所有流量都将通过SSL从ASPX站点到PHP站点

    // variables to store parameter values
    string url = "https://myphpserver.php";

    // creates the post data for the POST request
    string postData = "Username=" + username + "&Password=" + "&UID=" + UniqueRecID;

    // create the POST request
    HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
    webRequest.Method = "POST";
    webRequest.ContentType = "application/x-www-form-urlencoded";
    webRequest.ContentLength = postData.Length;

    // POST the data
    using (StreamWriter requestWriter2 = new StreamWriter(webRequest.GetRequestStream()))
    {
        requestWriter2.Write(postData);
    }

    //  This actually does the request and gets the response back
    HttpWebResponse resp = (HttpWebResponse)webRequest.GetResponse();

    string responseData = string.Empty;

    using (StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream()))
    {
        // dumps the HTML from the response into a string variable
        responseData = responseReader.ReadToEnd();
    }

2 个答案:

答案 0 :(得分:0)

使用HTTPS时,您的数据在邮件和传输范围内是安全的。这意味着没有人可以解码它或嗅探数据包。我建议你阅读这篇文章HTTPS Wiki

答案 1 :(得分:0)

SetBasicAuthHeader适用于HTTP Basic Access Authentication,因此您可以在此处获得帮助,因为您需要在应用程序级别处理身份验证。实际上,这并不比仅仅在浏览器中访问页面更不安全。我看到您正在使用SSL,因此无论如何您的请求都会被加密,您无需担心。

如果您担心其他原因(虽然我无法思考为什么),听起来您可以控制PHP端,因此您只需加密密码并添加额外的POST参数即可服务器知道解密它。