从ASP.Net页面通过C#将NetworkCredential传递给HttpWebRequest
发布时间:2020-05-24 14:15:33 所属栏目:asp.Net 来源:互联网
导读:我正在尝试使用HTTPWebRequest来访问Web服务,并且在传递凭据时遇到问题,请参阅下面的代码.我可以看到在调试器中构建的凭证对象nc,以及request.Credentials的赋值,但是当我到达最后一行代码时,它会出现未经授权的错误消息.我让我们的服务器人员在服务器上查看
|
我正在尝试使用HTTPWebRequest来访问Web服务,并且在传递凭据时遇到问题,请参阅下面的代码.我可以看到在调试器中构建的凭证对象nc,以及request.Credentials的赋值,但是当我到达最后一行代码时,它会出现未经授权的错误消息.我让我们的服务器人员在服务器上查看请求,并且没有传递凭据.我在Credentials对象上做错了什么,或者我需要做些什么我不在这里做什么? Uri requestUri = null;
Uri.TryCreate("https://mywebserver/webpage"),UriKind.Absolute,out requestUri);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create
(requestUri);
NetworkCredential nc =
new NetworkCredential("user","password");
request.Credentials = nc;
request.Method = WebRequestMethods.Http.Get;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
解决方法NetworkCredentials要么非常直观,要么不精确,或者两者兼而有之.无论如何,您可以通过完全绕过NetworkCredentials来解决问题,并使用此方法(我发现,由mark.michaelis.net提供)/* http://mark.michaelis.net/Blog/CallingWebServicesUsingBasicAuthentication.aspx */ byte[] credentialBuffer = new UTF8Encoding().GetBytes(username + ":" +password); req.Headers["Authorization"] ="Basic " + Convert.ToBase64String(credentialBuffer); 所以你要做的是手动为你的HttpWebRequest创建一个标题,并插入基本身份验证标题中显示的内容.奇迹般有效. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- asp.net – VirtualPath位于当前应用程序根目录之
- asp.net – 微软的AJAX Toolkit与jQuery
- Mono,asp.net c#和MVC如何和教程
- asp.net – RenderBody和RenderSection之间的区别
- asp.net – 在Response.RedirectToRoute之后跳过
- asp.net-mvc – 已经处理了DbContext和autofac
- asp.net-mvc-3 – System.Web.Mvc.HtmlHelper’不
- asp.net-mvc – 由于对输入文本框进行过滤而导致
- asp.net-mvc-3 – 与ASP.NET MVC 3中的视图页面不
- asp.net-mvc – ASP.NET身份登录
热点阅读
