如何在 http 标头中包含 UserID 和 Password?

Posted

技术标签:

【中文标题】如何在 http 标头中包含 UserID 和 Password?【英文标题】:How to include UserID and Password in the http header? 【发布时间】:2012-03-02 22:30:30 【问题描述】:
            string requestPath = "http://host/user/register";

            string RegJson = JsonConvert.SerializeObject(userProfile);
            WebRequest request = WebRequest.Create(requestPath);
            request.Headers.Add("UserID:"+ userID +";");
            request.Headers.Add("Password:" + password + ";");
            request.ContentType = "application/json; charset=utf-8";
            request.Method = "POST";

在这里,我正在将用户配置文件转换为 json 并将其用于 webrequest 调用。注册和登录后,我需要在每个请求的标题中包含用户 ID 和密码。我不确定我是否在标题中正确传递了用户 ID 和密码。

它应该在标题中如下所示:

POST /MyURL/ HTTP/1.1 主机主机名 内容长度 396 来源 chrome-extension://cokgbflfommojglbmbpenpphppikmonn 用户 ID 12345 密码 98765abc 用户代理 Mozilla/5.0 AppleWebKit/535.11(Khtml,如 Gecko)Chrome/17.0.963.56 Safari/535.11 内容类型应用程序/json 接受/ 接受编码 gzip,deflate,sdch Accept-Language en-US,en;q=0。

我试过 request.Headers.Add("UserID:"+ userID_Value +";");

【问题讨论】:

你说的是基本的Http认证吗? 为什么每次请求都需要传递用户名和密码?需要更多有关您尝试做什么的背景知识,但根据经验,将这样的密码传递给非 ssl 连接是一个坏主意。 也许你只需要request.Credentials = new NetworkCredential(username, password); request.Credentials 提出了错误的请求。我需要在 restful 服务中为所有请求添加用户 ID 和密码,因此它应该与请求一起出现在标题中 【参考方案1】:

Web 请求中不需要分号,只需添加为字符串即可。

               request.Headers.Add("UserID", userID);            
               request.Headers.Add("Password", password);

【讨论】:

以上是关于如何在 http 标头中包含 UserID 和 Password?的主要内容,如果未能解决你的问题,请参考以下文章

在进行 ajax 调用时在 HTTP 标头中包含 JWT

是否可以在 HTTP 标头字段中包含多个 CRLF?

在 HTTP 数据包(Cookie、标头或 JSON)中包含 JWT 令牌的正确方法

WCF - 如何在服务响应中包含/添加 WS-Addressing“TO”标头

如何在控制台服务主机中包含 WCF 自定义标头

php 标头:如何在位置命令中包含 nofollow