gpt4 book ai didi

c# 将值从 asp.net 网站传递到 Windows 窗体

转载 作者:行者123 更新时间:2023-11-30 22:28:52 25 4
gpt4 key购买 nike

我制作了一个网站和一个 Windows 窗体应用程序,它们都连接到同一个 MySQL 数据库。 Windows应用程序使用参数(用户名等)向网站发出POST请求。服务器(网站)生成一对RSA公钥和私钥。私钥存储在数据库中,公钥发送到客户端(windows app)。问题是当我尝试发送公钥时,它没有被发送。它发送其他信息,如网页的 html 代码和公钥,我在加密时收到错误“语法无效”(显然是因为发送了 html 代码和公钥)。我如何只提取公钥并只发送它给客户。但我得到了这个输出:http://postimg.org/image/8kwpnl6lp/

我做错了什么。我怎样才能得到公钥作为服务器的响应。感谢艾米的帮助谢谢

这是我的代码:

客户端(windows 应用程序:向服务器发出 post 请求):

public partial class Form1 : Form
{
string Url = "http://localhost:8731/ckey.aspx"; //creates public key
string userName = Textbox1.TExt;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
string publicKey = getPublicKey(Url);
richTextBox1.Text =publicKey ;
}
public string getPublicKey(string url)
{
WebClient webClient = new WebClient();
NameValueCollection formData = new NameValueCollection();
formData["username"] = userName;
byte[] responseBytes = webClient.UploadValues(url, "POST", formData);
string responsefromserver = Encoding.UTF8.GetString(responseBytes);
webClient.Dispose();
return responsefromserver;
}
}

和服务器端代码(生成rsa key 对并将公钥发送给客户端[ckey.aspx])

public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string response = AssignNewKey();
Response.Write(response);
}

public string AssignNewKey()
{

string username1 =Request.Form["username"];
RSA rsa1 = new RSACryptoServiceProvider(2048);
string publicPrivateKeyXML = rsa1.ToXmlString(true);
string publicOnlyKeyXML = rsa1.ToXmlString(false);

using (MySqlConnection myConn = new MySqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString))
{
string query = "INSERT INTO securelogin (PrivateKey,username)";
query += " VALUES (@PrivateKey,@username)";
MySqlCommand myCommand = new MySqlCommand(query, myConn);
myCommand.Parameters.AddWithValue("@PrivateKey", publicPrivateKeyXML);
myCommand.Parameters.AddWithValue("@username", username1);
myConn.Open();
myCommand.ExecuteNonQuery();
myConn.Close();
}
return publicOnlyKeyXML;
}

最佳答案

如果您通过 Response.Write 传递响应,那么您应该考虑添加 Response.End/Close。我们对 send/download 文件也一样。
否则它会呈现页面并添加页面 HTML。

关于c# 将值从 asp.net 网站传递到 Windows 窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34430729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com