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

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

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

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

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

今天我就尝试了已第二种方式进行授权,首先发布Web Service到IIS,然后选择身份验证,启用Windows身份验证,禁用匿名身份验证

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

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

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

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

因为发布Web Service的时候启用了Windows身份验证,所有在引用时会提示你舒服用户名和密码,输完了下面的页面才是真正的“添加Web引用”而不是“添加服务引用”

接下来后台代码:

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://developer.51cto.com/art/200908/141829.htm

时间: 2024-12-23 06:58:51

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

用户验证方案

一.使用HTTPS 协议 HTTPS 协议:是"HTTP协议" 和 "SSL/TLS协议"的组合.HTTP的安全版.其实就是一个安全通信通道,基于HTTP开发,用于在客户计算机和APP后台之间交换信息.使用安全套接字层进行信息交换. SSL(1999年之前):安全套接层       TLS(1999年SSL协议标准化之后):传输层安全协议  两者可以视为同一个东西的不同阶段 二.基本的用户登录方案 传统Web网站使用Cookie+Session保持用户的登录状态 A

Linux多安全策略和动态安全策略框架演示验证方案及结果分析

3演示验证方案及结果分析3.1演示验证方案3.1.1验证目标 该方案主要用于验证采用Flask体系结构实现的SELinux对系统的防护过程及相应的防护原理.3.1.2验证环境 操作系统:启用了SELinux的centos6.3 内核版本:2.6.32-279.e16.i686 策略类型:targeted 策略版本:policy.24 必要的软件包:setools.policycoreutil3.1.3技术原理 由于targeted策略只对网络服务进行保护,因此该验证场景就以www服务器为例来说明

一种基于主板BIOS的身份认证方案及实现

一.BIOS简介 BIOS是只读存储器基本输入/输出系统,它是被固化到计算机中的一组程序,为计算机提供最低级的.最直接的硬件控制,在计算机系统中起着非常重要的作用.BIOS是硬件与软件程序之间的接口,负责解决硬件的即时需求,并按软件对硬件的操作要求具体执行.BIOS的功能包括自检及初始化.硬件中断处理.程序服务处理. 1. 自检及初始化 这个部分的功能是启动计算机,包括三个部分,第一个部分是用于计算机刚接通电源时对硬件部分的检测,也叫做加电自检(POST),功能是检查计算机是否良好.第二个部分是

RDO远程连接时提示“远程计算机需要网络级别身份验证,而您的计算机不支持该验证,请联系您的系统管理员或者技术人员来获得帮助”

当服务器重装操作系统后使用RDO远程连接时会出现错误提示"远程计算机需要网络级别身份验证,而您的计算机不支持该验证,请联系您的系统管理员或者技术人员来获得帮助" 如下图所示 原因是服务器版操作系统提高了安全级别,使用了网络级别的身份验证信息.RDO模拟的是WinXP系统的远程连接,安全系数较低.所以会出现在同一个win764旗舰版机器上使用系统自带的远程桌面能连接,但使用RDO就连接不上去的情况. 解决方法如下:  第一步: 使用系统自带的远程桌面(mstsc.exe)连接服务器, 运

XP远程连接Win10,提示【远程计算机需要网络级别身份验证,而您的计算机不支持该验证】

最近电脑安装了Win10系统,在办公室可以通过其他电脑远程,但是回去后使用自己的电脑(XP系统)进行远程提示失败, 提示[远程计算机需要网络级别身份验证,而您的计算机不支持该验证],然后上网查找资料,只要修改两个注册表文件即可 1.“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa”,双击右边的 “Security Packages”, 打开“编辑多字符串”对话框,增加“tspkg” 2.“HKEY_LOCAL_MACHINE\SYS

Spring Security框架下Restful Token的验证方案

项目使用Restful的规范,权限内容的访问,考虑使用Token验证的权限解决方案. 验证方案(简要概括): 首先,用户需要登陆,成功登陆后返回一个Token串: 然后用户访问有权限的内容时需要上传Token串进行权限验证 代码方案: Spring MVC + Spring Security + Redis的框架下实现权限验证,此文重点谈谈Spring Security下的Token验证实现. 首先,看看spring security的配置: <http pattern="/service

TCP Incast 问题TCP INCAST解决思路 应用场景:在集群文件系统内,客户端应用请求某个逻辑数据块(通常情况下一个读数据块大小是1MB),该数据块以条带化方式分别存储在几个存储服务器上,即采用更小的数据片存储(32KB,256KB等),这种小数据片称为服务器请求单元(SRU)。只有当客户端接收到所有的服务器返回的其所请求数据块的SRU后才继续发送出下一个数据块请求,即客户端同时向

TCP INCAST解决思路 应用场景:在集群文件系统内,客户端应用请求某个逻辑数据块(通常情况下一个读数据块大小是1MB),该数据块以条带化方式分别存储在几个存储服务器上,即采用更小的数据片存储(32KB,256KB等),这种小数据片称为服务器请求单元(SRU).只有当客户端接收到所有的服务器返回的其所请求数据块的SRU后才继续发送出下一个数据块请求,即客户端同时向多个存储服务器发起并发TCP请求,且所有服务器同时向客户端发送SRU. 出现的问题: 1)         这种多对一的服务器向客

查看jQuery请求的客户端端口

突然好奇心作祟,想看看jQuery请求时客户端使用的端口号,在IE的F12开发人员工具中并未找到,到chrome的开发者工具中也未找到,通过netstat还是搞不定,换个思路到服务器端研究了下servlet的Request接口API,还是木有,于是有了下面的代码. 1.启动服务类模拟http服务 public class Server { public static void main(String[] args) throws Exception{ ServerSocket serverSoc

远程计算机需要网络级别身份验证,而您的计算机不支持该验证的解决方法

故障:"远程计算机需要网络级别身份验证,而您的计算机不支持该验证,请联系您的系统管理员或者技术人员来获得帮助" 故障症状:当您使用Windows XP"远程桌面连接"工具去连接Windows Vistas或Windows Server 2008的远程桌面.终端服务时,出现上述故障. 故障产生环境:远程桌面连接工具6.0以下版本,或者Windows XP Profressional SP1.SP2.SP3 解决方法:1.请升级"远程桌面连接"工具最