我希望c#将一段HPKP代码写入文本框。
一条apache HKPK代码是什么样的:
Header always set Public-Key-Pins "pin-sha256=\"base64+primary==\"; pin-sha256=\"base64+backup==\"; max-age=5184000; includeSubDomains"
我在c#中尝试过做什么:
apacheTextBox.Text = ("Header always set Public-Key-Pins ") + ("pin-sha256=\"base64+primary==\"; pin-sha256=\"base64+backup==\"; max-age=5184000; includeSubDomains");
导致(输入文本框但在此处显示代码以便清晰查看):
Header always set Public-Key-Pins pin-sha256="base64+primary=="; pin-sha256="base64+backup=="; max-age=5184000; includeSubDomains
如您所见,之间缺少两个引号:
pin-sha256="base64+primary=="; pin-sha256="base64+backup=="; max-age=5184000; includeSubDomains
那么如何让c#写下引号?
答案 0 :(得分:2)
\“将在c#中转义引号,因此它会将引号打印为字符。试试这个
apacheTextBox.Text = ("Header always set Public-Key-Pins ") + ("\"pin-sha256=\"base64+primary==\"; pin-sha256=\"base64+backup==\"; max-age=5184000; includeSubDomains\"");
答案 1 :(得分:1)
如同显示的内容一样,请使用\"。在写引号"之前,你需要一个转义字符\。
apacheTextBox.Text = ("\"Header always set Public-Key-Pins ") + ("pin-sha256=\"base64+primary==\"; pin-sha256=\"base64+backup==\"; max-age=5184000; includeSubDomains\"");
另外,如果需要反斜杠,请使用双反斜杠\。第一个是转义字符,第二个是反斜杠。
apacheTextBox.Text = ("\"Header always set Public-Key-Pins ") + ("pin-sha256=\\\"base64+primary==\\\"; pin-sha256=\\\"base64+backup==\\\"; max-age=5184000; includeSubDomains\\\"");
这里的关键是理解转义字符反斜杠。