我需要从我的网站上获取一个非常长时间运行的任务并放入Web服务但是每次尝试调用Web服务时都会收到此错误消息The request failed with HTTP status 401: Unauthorized.
我认为这可能只是凭证的问题,因为我在发送电子邮件时看到了类似的内容,所以我这样做了:
Dim wsCustomer As New blueprintdev.RosterEmailService()
Dim basicAuthenticationInfo As New System.Net.NetworkCredential("user", "pass")
wsCustomer.UseDefaultCredentials = False
wsCustomer.PreAuthenticate = True
wsCustomer.Credentials = basicAuthenticationInfo
txtTestResult.Text = wsCustomer.Test()
这仍然给我同样的问题。
还尝试使用默认凭据,但仍无效。
现在我不知道如何正确地做到这一点,所以我大部分时间都在制作教程等,有谁能告诉我这里我做错了什么?
由于
附加说明:我正在开发的项目是我加入公司后继承的项目,并且无法在visual studio中构建,因此如果没有大规模攻击项目并删除大量代码,那么对代码进行破坏不是一个选择。
更新:运行fiddler向我显示3个条目,当我查看auth选项卡时,我看到:
No Proxy-Authenticate Header is present.
WWW-Authenticate Header (Negotiate) appears to be a Kerberos reply:
A1 15 30 13 A0 03 0A 01 03 A1 0C 06 0A 2B 06 01 ¡.0. ....¡...+..
04 01 82 37 02 02 0A ..7...
然后
No Proxy-Authenticate Header is present.
WWW-Authenticate Header (Negotiate) appears to be a Kerberos reply:
A1 81 E2 30 81 DF A0 03 0A 01 01 A2 81 D7 04 81 ¡â0ß ....¢×.
D4 4E 54 4C 4D 53 53 50 00 02 00 00 00 0E 00 0E ÔNTLMSSP........
00 38 00 00 00 15 82 89 E2 C1 20 C3 44 5E 99 21 .8....âÁ ÃD^!
A0 00 00 00 00 00 00 00 00 8E 00 8E 00 46 00 00 ..........F..
00 06 01 B1 1D 00 00 00 0F 41 00 43 00 41 00 44 ...±.....A.C.A.D
00 45 00 4D 00 59 00 02 00 0E 00 41 00 43 00 41 .E.M.Y.....A.C.A
00 44 00 45 00 4D 00 59 00 01 00 06 00 44 00 45 .D.E.M.Y.....D.E
00 56 00 04 00 1A 00 6C 00 6F 00 63 00 61 00 6C .V.....l.o.c.a.l
00 2E 00 41 00 63 00 61 00 64 00 65 00 6D 00 79 ...A.c.a.d.e.m.y
00 03 00 22 00 44 00 45 00 56 00 2E 00 6C 00 6F ...".D.E.V...l.o
00 63 00 61 00 6C 00 2E 00 41 00 63 00 61 00 64 .c.a.l...A.c.a.d
00 65 00 6D 00 79 00 05 00 1A 00 6C 00 6F 00 63 .e.m.y.....l.o.c
00 61 00 6C 00 2E 00 41 00 63 00 61 00 64 00 65 .a.l...A.c.a.d.e
00 6D 00 79 00 07 00 08 00 2E 76 48 74 53 21 CD .m.y......vHtS!Í
01 00 00 00 00
.....
最后这个以红色突出显示
No Proxy-Authenticate Header is present.
No WWW-Authenticate Header is present.
这是否意味着身份验证数据在客户端和服务器之间的某处丢失?或者我开始没有传递任何东西?
答案 0 :(得分:1)
如果您可以通过浏览器访问该服务,我建议您传递您的用户名,包括域名作为凭据。
用户名看起来像这样:DOMAIN \ USER
答案 1 :(得分:0)
我遇到了类似的问题,必须明确添加用户名和密码。
即
wsCustomer.username = "something"
wsCustomer.password = "something else"
我猜你已经这样做了:
Dim basicAuthenticationInfo As New System.Net.NetworkCredential("user", "pass")
但也许值得一试