询问者
如何让服务器对uid与pwd进行验证,并将验证结果返回给客户端

问题
-
请教一下:
现在有这样一个需求,假设服务器地址 www.fuq.com,客户机运行的软件通过 http://www.fuq.com/uid=UserName&pwd=PordWord来发送请求,服务器对uid与pwd进行验证,并将验证结果返回给客户端。这采用什么样的方式来实现?
- 已编辑 Sheng Jiang 蒋晟Moderator 2011年3月15日 16:24 标题含糊
全部回复
-
在url中提交用户名密码会有安全问题
The following is signature, not part of post
Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
Visual C++ MVP -
我客户端为c/s程序,代码如下:
private void button1_Click(object sender, EventArgs e)
{
StringBuilder sbTemp = new StringBuilder();
//POST
sbTemp.Append("uid=" + UserName.Text.Trim() + "&pwd=" + Pwd.Text.Trim());
byte[] bTemp = System.Text.Encoding.GetEncoding("GBK").GetBytes(sbTemp.ToString());
//byte[] bTemp = System.Text.Encoding.ASCII.GetBytes(sbTemp.ToString());
String postReturn = doPostRequest("http://www.fuq.com/default.aspx",bTemp);
if (postReturn.IndexOf("xzok") >= 0)
{
labMsg.Text = "正常";
}
else
{
labMsg.Text = "非法";
}
}
private static String doPostRequest(string url, byte[] bData)
{
System.Net.HttpWebRequest hwRequest;
System.Net.HttpWebResponse hwResponse;
string strResult = string.Empty;
try
{
hwRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
hwRequest.Timeout = 5000;
hwRequest.Method = "POST";
hwRequest.ContentType = "application/x-www-form-urlencoded";
hwRequest.ContentLength = bData.Length;System.IO.Stream smWrite = hwRequest.GetRequestStream();
smWrite.Write(bData, 0, bData.Length);
smWrite.Close();
}
catch (System.Exception err)
{
WriteErrLog(err.ToString());
return strResult;
}
//get response
try
{
hwResponse = (HttpWebResponse)hwRequest.GetResponse();
StreamReader srReader = new StreamReader(hwResponse.GetResponseStream(), Encoding.ASCII);
strResult = srReader.ReadToEnd();
srReader.Close();
hwResponse.Close();
}
catch (System.Exception err)
{
WriteErrLog(err.ToString());
}
return strResult;
}服务器端为一个网站,http://www.fuq.com/default.aspx代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["uid"] != null || Request.QueryString["pwd"] != null)
{
if (Request.QueryString["uid"] == "zxl" || Request.QueryString["pwd"] == "761130")
{
Response.Write("xzok");
}
else
{
Response.Write("xzerror");
}
}
else
{
Response.Write("xzerror");
}
}可是我在客户端输入zxl,761130却得不到"正常",不知代码有什么问题?