gpt4 book ai didi

javascript - .NET MVC 从 JSON Uint8Array 反序列化字节数组

转载 作者:搜寻专家 更新时间:2023-11-01 04:57:29 25 4
gpt4 key购买 nike

我在我的客户端 Web 应用程序上使用 js-scrypt ( https://github.com/tonyg/js-scrypt ) 对密码进行哈希处理和加盐处理,然后再将它们发布到我的服务器端 .NET MVC 应用程序以再次进行哈希处理和加盐处理。这个 JavaScript 库将字节数组实现为 JavaScript Uint8Arrays。如何让我的 MVC Controller 将我的 JSON Uint8Array 反序列化为 byte[]?

JavaScript 示例:(AJAX.Post 是我编写的库,myUint8Array 正确序列化)

AJAX.Post('www.example.com/SendByteArray', { myByteArray: myUint8Array }, Callback);

C# 示例:(在我的默认 Controller 中)

[HttpPost]
public async Task<JsonResult> SendByteArray(byte[] myByteArray) {

}

在此示例中,myByteArray 始终为空。我尝试了几种不同的方法,基于转换为字符串然后返回 byte[] 但我无法获得正确的值。如果我能以某种方式直接将代码实现到 .NET 的 JSON 反序列化器中,以便上面的代码完全按原样工作,那将是非常可取的,因为我还有一些其他项目,如果我可以直接在它们之间传递字节数组,我可以做一些很酷的事情服务器端和客户端应用程序。

最佳答案

目前我唯一可以开始工作的方法是对 Uint8Array 进行 base64 编码,在 C# 中将其捕获为字符串,然后将该字符串转换为 byte[]。

JavaScript:

AJAX.Post('www.example.com/SendByteArray', { strByteArray: btoa(String.fromCharCode.apply(null, myUint8Array)) }, Callback);

C#:

[HttpPost]
public async Task<JsonResult> SendByteArray(string strByteArray) {
byte[] myByteArray = Convert.FromBase64String(strByteArray);
}

关于javascript - .NET MVC 从 JSON Uint8Array 反序列化字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17845032/

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