我有以下代码连接到我的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();
}
答案 0 :(得分:0)
使用HTTPS时,您的数据在邮件和传输范围内是安全的。这意味着没有人可以解码它或嗅探数据包。我建议你阅读这篇文章HTTPS Wiki
答案 1 :(得分:0)
SetBasicAuthHeader适用于HTTP Basic Access Authentication,因此您可以在此处获得帮助,因为您需要在应用程序级别处理身份验证。实际上,这并不比仅仅在浏览器中访问页面更不安全。我看到您正在使用SSL,因此无论如何您的请求都会被加密,您无需担心。
如果您担心其他原因(虽然我无法思考为什么),听起来您可以控制PHP端,因此您只需加密密码并添加额外的POST参数即可服务器知道解密它。