小编Cai*_*ech的帖子

使用散列进行身份验证

我需要使用我不理解的复杂身份验证过程连接到 API。我知道它涉及多个步骤,我试图模仿它,但我发现文档非常混乱......

这个想法是我向端点发出请求,该端点将向我返回一个令牌,我需要使用该令牌来建立 websocket 连接。

我确实得到了一个我不知道语法的 Python 代码示例,但我可以将其用作将其转换为 C# 语法的指南。

这是 Python 代码示例:

import time, base64, hashlib, hmac, urllib.request, json

api_nonce = bytes(str(int(time.time()*1000)), "utf-8")
api_request = urllib.request.Request("https://www.website.com/getToken", b"nonce=%s" % api_nonce)
api_request.add_header("API-Key", "API_PUBLIC_KEY")
api_request.add_header("API-Sign", base64.b64encode(hmac.new(base64.b64decode("API_PRIVATE_KEY"), b"/getToken" + hashlib.sha256(api_nonce + b"nonce=%s" % api_nonce).digest(), hashlib.sha512).digest()))

print(json.loads(urllib.request.urlopen(api_request).read())['result']['token'])
Run Code Online (Sandbox Code Playgroud)

所以我试图把它转换成 C#,这是我到目前为止得到的代码:

    static string apiPublicKey = "API_PUBLIC_KEY";
    static string apiPrivateKey = "API_PRIVATE_KEY";
    static string endPoint = "https://www.website.com/getToken";

    private void authenticate()
    {
        using (var client = new HttpClient())
        {
            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;


            // CREATE …
Run Code Online (Sandbox Code Playgroud)

c# python hash sha hmac

6
推荐指数
1
解决办法
324
查看次数

收到错误 JSON 转义序列错误

我目前正在测试一个应用程序,但它向我抛出了一个错误的 JSON 转义序列,但是我没有看到问题......

我可能忽略了一些东西,所以一双新鲜的眼睛可能会有用。

messageContents = "{\"command\":\"cue\",\"channel\":1,\"uid\":\"aesd-deaf\",\"type\":\"standard\",\"waitforexecute\":true,\"duration\":0,\"scene\":[{\"name\":\"Scene1\",\"fields\":[{\"Quad1\":\"F:\\TestFolder\\mill.jpg\"}]}]}";
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

{"Bad JSON escape sequence: \\T. Path 'scene[0].fields[0].Quad1', line 1, position 150."}
Run Code Online (Sandbox Code Playgroud)

任何人都可以发现错误吗?谢谢,肯尼斯

c# json syntax-error

5
推荐指数
1
解决办法
1万
查看次数

使用Linq将带有嵌套列表的列表转换为单独的列表

我正在构建一个游戏应用程序.在我的表单上,我有一个datagridview,我想绑定不同玩家的选择.

我有一个特定的PlayerClass,我把它放在名为Players的列表中.

public class PlayerClass
{
  public int Id {get; set;}
  public string Name {get; set;}
  public List<bool> choices {get; set;}
}

Public List<PlayerClass> Players;
Run Code Online (Sandbox Code Playgroud)

在此列表中,我将添加玩家针对不同问题所做出的选择.

为了显示所做的选择,我想将结果组合到datagridview中,其中每个玩家都有一列,每行代表该玩家为该特定问题给出的答案.

所以我想创建一个包含新类的列表,该类包含不同玩家为一个问题提供的所有答案.

public class ChoicesViewClass
{
    public bool ChoicePlayer1 { get; set; }
    public bool ChoicePlayer2 { get; set; }
    public bool ChoicePlayer3 { get; set; }
    public bool ChoicePlayer4 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是,如何使用Linq从第一个列表中填充辅助列表中的选项?

我正在尝试这样的事情:

grdChoices.DataSource = Players
                      .Select(s => new ChoicesViewClass{ ChoicePlayer1 = s, ChoicePlayer2 = s, ChoicePlayer3 = s, ChoicePlayer4 …
Run Code Online (Sandbox Code Playgroud)

c# linq

5
推荐指数
1
解决办法
61
查看次数

Jquery隐藏具有与特定条件不匹配的特定类名的元素

我有一个页面,其中包含多个元素,这些元素都具有相同的类名.

其中一些正在重新定位,当我提交页面时,我想隐藏位于顶部的元素:0;

我一直在寻找一些建议,我尝试过这样的事情:

$('.myClass').not($('.myClass').css('top', '0')).fadeOut(300);
Run Code Online (Sandbox Code Playgroud)

但显然这不起作用:-)

其他人对如何做到这一点有所了解?

谢谢

javascript css jquery

3
推荐指数
1
解决办法
64
查看次数

标签 统计

c# ×3

css ×1

hash ×1

hmac ×1

javascript ×1

jquery ×1

json ×1

linq ×1

python ×1

sha ×1

syntax-error ×1