gpt4 book ai didi

C# - 将数据传递给 JS 并等待结果进行处理

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:58 24 4
gpt4 key购买 nike

有没有办法将一些东西从 C# 传递给 JS,然后在 JS 中做一些事情并将它返回给 C# 代码?

我正在处理 MVC,我正在尝试在发送之前加密 View 中的密码,这样就没有人可以偷看。我的想法是:

  1. 点击提交时,AJAX 调用会向服务器请求生成新的 RSA key 对
  2. 服务器生成新的 key 对并将公钥发送给客户端,等待响应
  3. 客户端收到公钥,在js文件中对密码进行加密,并将加密后的密码发送给服务器
  4. 服务器收到它等待的数据并解密密码

我认为这是做到这一点的“最佳”方式,但我不知道是否可以使用 Ajax 启动一个线程,然后让它一直等待直到它收到响应,或者在 x 时间后死亡。我认为这是最好的方法,因为它会在您每次需要提交密码时生成一个唯一的 key 对,并且永远不会被存储,所以如果有人根据您发送的请求进行选择,他们将获得一个加密的密码,可以不能白用。

最佳答案

您的问题格式不正确。您不希望服务器向客户端发送任何内容,而是客户端向服务器发送任何内容。就像你的场景一样,这看起来不错:

  1. 客户端请求服务器:给我公钥
  2. 服务器响应:这是我选择私钥所需的 key 和 ID
  3. 客户端加密,服务器不关心这里发生了什么。
  4. 客户端发送给服务器:这是你之前给我的加密密码和ID。
  5. 服务器查找给定 key ID 的 key 缓存
  6. 服务器使用从缓存中检索到的私钥解密密码,客户端等待响应。
  7. 服务器响应:密码正确或密码错误,或者如果找不到提供的 ID,应返回超时或其他错误。

当然,如果您想动态生成 RSA key ,对于每个请求,您需要在某处随机保存要解密的 key 和一些 session key (客户端也知道),这样您就可以匹配它们起来,但它应该可以工作。

内置的 .NET 内存缓存似乎是专为这项任务而设计的。您可以将数据放入缓存、检索数据、删除数据并设置有效时间,之后 .NET 自行管理从缓存中删除对象。
请参阅可用的 .NET 文档:https://msdn.microsoft.com/pl-pl/library/system.runtime.caching.memorycache(v=vs.110).aspx在这件事上。

可以在 Ajax 中创建请求并使其等待完成或超时,但您必须记住,服务器无法联系客户端,除非客户端要求联系(发送请求)或您正在使用websockets(对于这个任务,我认为它就像杀死苍蝇的大炮)。

关于C# - 将数据传递给 JS 并等待结果进行处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47275091/

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