HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”

摘要:
今天,我尝试了第二种授权方法。首先,将WebService发布到IIS,然后选择身份验证,启用Windows身份验证,禁用匿名身份验证。发布后,将在客户端调用WebService。我使用了VS2008。右键单击以在客户端的项目引用中添加服务引用,输入地址以修改命名空间,并确认接下来将编写后台调用代码。始终报告HTTP请求未经客户端身份验证方案“匿名”授权。从服务器接收的身份验证标头为“协商,NTLM”。

转自:http://www.cnblogs.com/geqinggao/p/3270499.html

近来项目需要Web Service验证授权,一般有两种解决方案:

1.通过通过SOAP Header身份验证。

2.通过集成windows身份验证。

今天我就尝试了已第二种方式进行授权,首先发布Web Service到IIS,然后选择身份验证,启用Windows身份验证,禁用匿名身份验证HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”第1张HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”第2张

发布好了Web Servive就要在Client端调用了,我用的是VS2008,在client端项目引用中右键添加服务引用,输入地址修改命名空间确定

HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”第3张HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”第4张

接下来就要写后台调用代码了:

HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”第5张

 尝试了多种授权,始终会报HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”。的错误,很无解啊!

想到是不是因为.net 3.5通过添加服务引用(WCF引用)的方式和2.0 Web Service有兼容性问题呢?老老实实的以WS2005的方式添加Web Service再试:

HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”第6张HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”第7张HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”第8张因为发布Web Service的时候启用了Windows身份验证,所有在引用时会提示你舒服用户名和密码,输完了下面的页面才是真正的“添加Web引用”而不是“添加服务引用”

HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”第9张

接下来后台代码:

private void button1_Click(object sender, EventArgs e)
   {
       XmlNode x = null;
       WSPTIClient.PTIWS.PTIWebService s = new WSPTIClient.PTIWS.PTIWebService();
       s.Credentials = new System.Net.NetworkCredential("Gerry", "password");
 
       x = s.Transight_RetrieveOrder(1, DateTime.Now.Date, "-1");
       MessageBox.Show(x.OuterXml);
   }

  运行不报错了,一切OK.我们再看看项目的引用多了一个“添加Web引用”

HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”第10张

参考资料:http://developer.51cto.com/art/200908/141829.htm

免责声明:文章转载自《HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇c程序的执行过程11、testng.xml文件解析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

Matlab高级教程_第二篇:Matlab相见恨晚的模块_02_并行运算-1

3 MATLAB2009之后,并行计算工具箱和并行计算服务退出。通过PCT和DCS,用户可以实现基于多核平台、多处理器平台和集群平台的多个并行计算任务。除了支持上述通用功能外,PCT还增加了对GPU单元的支持。现在来看彼此已经太晚了:用parfor并行化for循环。在编程中,使计算量最小化的代码总是一个循环。7 parpool命令在不启动并行池的情况下配置并...

windows 常用命令行操作

目录操作˃pwd打印当前工作目录,通过此关键词可以查看当前所处的路径˃cd更改目录,用于多个目录之间的切换具体输入:cd目录名cd目录名/子目录名(可通过此方式到达最底层的目录)cd~(返回home目录)cd..(返回上一级目录)cd../..(返回上两级目录)cd盘符名:(不同盘符间跳转,cd后面跟上路径则可实现精准跳转)˃mkdir创建目录具体输入:mk...

MySQL 字段类型占用空间

MySQL支持多种列类型:数值类型、日期/时间类型和字符串(字符)类型。)1或2个字节,取决于枚举值的个数SET(‘value1’,’value2’,…)1、2、3、4或者8个字节,取决于set成员的数目上表的M只是为了说明占用空间大小,在实际创建表中char、varchar,20指的是字符而不是字节;那么字符和字节的转换要看字符集,utf-8下,1字符=3...

Java 实体类转json对象,属性名转key后首字母强制被转成小写的解决方案

  2.原因分析我们知道在Java规范中,实体类的属性名的命名规范需要遵循首字母小写的驼峰命名法,既是规范也是约束也是牢笼。如果不喜欢这种实现方式,还可以迭代json取值,将key的首字母转大写,也是可以哒。...

Win10阻止电脑关机时弹出正在关闭应用的方法及恢复

当计算机上安装了Windows 10时,当我们在未完成所有运行程序的情况下关闭计算机时,将弹出n个应用程序正在关闭并关闭的提示。第一步是创建一个自动关闭应用程序并将其添加到注册表的注册表文件。这可以解决在Windows 10系统计算机关闭时弹出提示关闭n个应用程序并关闭的问题。...

vue.js(3)

vue中有两种类型的组件:默认组件[全局组件]和单文件组件5.1.1默认组件vue。组成部分varvm=newVue6.Vue自动化工具需要提前安装和准备一些组件开发工具,以便在了解常见组件后继续学习单文件组件。因此,我们需要首先在系统中构建vue CLI工具。官方网站:https://cli.vuejs.org/zh/VueCLI需要Node.js8.9或...