C#SSL基本访问认证
我想要求第三方提交报告,他们需要通过POST进行“基本访问身份validation”:
Your client application must use Basic Access Authentication to send the user name and password.
有人能指出我正确的方向吗?
编辑:我确实看到了这篇文章,但有两个答案,我不确定那是我需要做什么或哪一个是首选方法。
假设您使用WebRequest,请将CredentialCache附加到您的请求:
NetworkCredential nc = new NetworkCredential("user", "password"); CredentialCache cc = new CredentialCache(); cc.Add("www.site.com", 443, "Basic", nc); WebRequest request = WebRequest.Create("https://www.site.com"); request.Credentials = cc; request.PreAuthenticate = true; request.Method = "POST"; // fill in other request properties here, like content WebResponse respose = request.GetResponse();
基本要点是这样的:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); request.Method = WebRequestMethods.Http.Get; request.Credentials = new NetworkCredential(username, password);
但有时使用请求凭据存在问题,另一种方法是在请求标头中添加身份validation数据
string authInfo = username + ":" + password; authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo)); request.Headers["Authorization"] = "Basic " + authInfo;
有关详细信息,请参阅此博客文章
http://charlie.cu.cc/2012/05/how-use-basic-http-authentication-c-web-request/
- WebApi.Owin中的SuppressDefaultHostAuthentication还禁止webapi之外的身份validation
- ASP核心通过外部(自定义)服务登录
- owin oauth发送其他参数
- Sharepoint 2013中的联合身份validation:获取rtFa和FedAuth cookie
- 如何在没有用户密码的情况下获取Alfresco登录票证,但使用用户主体名称(UPN)模拟用户
- MVC 5 IoC和身份validation
- 用于CXF Web服务的.NET客户端身份validation和SOAP凭据标头
- 在Office365上使用默认SMTP凭据的例外 – 客户端未经过身份validation,无法在MAIL FROM期间发送匿名邮件
- 使用webAPI承载令牌进行SignalR认证