WCF与IIS集成Windows身份验证的矛盾

好久没有上来了,最近跟着原来的老大一起跳到了一家新公司,在做一个新的交友项目,今天总算基本完成了。分享一个关于WCF的小技巧,由于项目中

很多地方用了Jquery+WCF来实现Ajax异步获取数据,在开发环境下:

直接在vs.net里,右击svc文件在浏览器里浏览时(没有采用vs.net自带的aspx服务器,而是在项目属性里设置为直接使用IIS),提示以下错误:

IIS 指定了身份验证方案“IntegratedWindowsAuthentication, Anonymous”,但绑定仅支持一种身份验证的规范。有效的身份验证方案为摘要、协商、NTLM、基本或匿名。请更改 IIS 设置,以便仅使用单一的身份验证方案。

错误提示说得很明白:IIS要么采用集成验证,要么仅使用匿名验证,于是把IIS设置里的集成验证勾选去掉了,IIS重启后,这回运行正常了,但是VS.Net却无法断点调试了(启用调试必须采用集成验证),难道这就是传说中的“鱼与熊掌不可兼得”???

不甘心之下,在iis的website站点中,对svc所在的目录右击看了一下,呵呵,找到解决办法了,IIS可以允许单独对每个目录(或虚拟目录)设置目录安全性,于是把svc所在的目录(整个项目中的所有wcf文件都集中放在这个目录中)--》目录安全性-->去掉了集成验证前的勾选框,而整个站点仍然采用集成验证,这下svc可以直接浏览,而我们傻乎乎的vs.net也能断点调试了……(菩提树下的杨过^_^)

 

时间: 2024-11-01 09:23:14

WCF与IIS集成Windows身份验证的矛盾的相关文章

Exchange2007在不同网络环境下会出现集成windows身份验证窗口

问题描述 各位专家好:我的exchange2007server使用基于表单的身份验证,在局域网内部访问正常,在外网访问部分正常,但是在某些地区访问时会出现windows身份验证窗口,输入exchange的用户名和密码也无法通过验证,但是根据分析这些地区的网络环境就是正常的路由器上网方式,不知道是什么原因引起的,有什么解决办法. 解决方案 解决方案二:OutlookorOWA?解决方案三:Outlook还要formbasedauthentication?你太牛了:)这种情况往往是你得验证报文由于某

用java程序访问集成windows身份验证的webservice(.net版本)

问题描述 如题输入密码之后就能打开wsdl了.这种windows集成身份验证的.netwebservice如何使用java程序进行访问? 解决方案 解决方案二:C#调用WebService时的身份验证在项目开发,我们经常会使用WebService,但在使用WebService时我们经常会考虑以下问题:怎么防止别人访问我的WebService?从哪里引用我的WebService?对于第一个问题,就涉及到了WebService是安全问题,因为我们提供的WebService不是允许所有人能引用的,可能

没有sa密码无法集成windows身份验证登录的解决方法_MsSql

SQL登录时如果采用windows集成身份验证,登录框将会以"机器名\当前系统用户名"的格式显示登录名,而且登录名和密码都是灰色的,不允许用户输入. 了解到同事刚刚修改了服务器的机器名,因此在SQL的登陆框中显示"新机器名\当前系统用户名".要知道windows集成身份验证能登录的原因是在SQL的登录名中已经包括了该用户名,原来的用户名在SQL安装的时候已经记录到了SQL中,如果机器名变更了,"新机器名\当前系统用户名"肯定无法正常登录. 网上看

没有sa密码无法集成windows身份验证登录的解决方法

SQL登录时如果采用windows集成身份验证,登录框将会以"机器名\当前系统用户名"的格式显示登录名,而且登录名和密码都是灰色的,不允许用户输入. 了解到同事刚刚修改了服务器的机器名,因此在SQL的登陆框中显示"新机器名\当前系统用户名".要知道windows集成身份验证能登录的原因是在SQL的登录名中已经包括了该用户名,原来的用户名在SQL安装的时候已经记录到了SQL中,如果机器名变更了,"新机器名\当前系统用户名"肯定无法正常登录. 网上看

ASP.NET 2.0中的Windows身份验证

本教程阐释在 ASP.NET 2.0 版中,IIS 集成 Windows 身份验证以及 ASP.NET Windows 身份验证的工作机制.同时,阐释 NTLM 和 Kerberos 身份验证的工作机制.此外,本教程还阐释 WindowsAuthenticationModule 类如何构造 WindowsPrincipal 和 WindowsIdentity 对象,然后将这些对象附加到当前的 ASP.NET Web 请求以表示经过身份验证的用户. 概述 身份验证是一个验证客户端身份的过程,通常采

Windows 集成的身份验证连接SQL Server数据库,打造更安全的连接

server|window|安全|数据|数据库 摘要:今天用C#编写一个Windows 服务程序,其中要连接一个Windows 2003 Server上的SQL Server 2000 数据库,用SQL Server 身份验证.发现普通程序都能联上,但是Windows服务程序就是联不上. 后来查了资料,找到了解决方法.共享给大家. 三步解决: 1.  在服务器上创建一个用户,配置好SQL Server数据库访问权限. 2.  在客户端创建一个一样的用户. 3.  服务程序以刚创建的那个客户端用户

高分求解:集成windosws身份验证,登录后如何在不中断会话的情况下注销登录?

问题描述 一个网站中使用了集成windosws身份验证,使用WINDOWS帐户登录后,如果在不中断当前会话的情况下注销啊?> 解决方案 解决方案二:网站,你是说登陆数据库????????解决方案三:windosws身份验证,不是登录数据库是网站中使用了服务器的系统帐户来进行认证解决方案四:关注,学习一下!解决方案五://自己写个类,//youPrincipal为自己写的继承System.Security.Principal.IPrincipal类.每个页面前面加入if(Context.User.

SQLSERVER误删Windows登录用户验证方式使用Windows身份验证的解决方法

今天看到这篇文章:没有了SA密码,无法Windows集成身份登录,DBA怎么办? 想起来之前着急哥问我的一个问题,一个DBA删除了Windows登录用户,而且SQLSERVER服务器的验证 方式是Windows身份验证 怎麽办?? 我当时给他的答复是:重装系统数据库master 今天看到这篇文章没有了SA密码,无法Windows集成身份登录,DBA怎么办?,有思路了 假设我们遇到很糟糕的情况 sa被禁用,服务器身份验证为Windows身份验证模式,Windows登录用户被删,没有其他sysadm

远程的就不行。-asp.net连接远程数据库,该登录名来自不受信任的域,不能与 Windows 身份验证一起使用。

问题描述 asp.net连接远程数据库,该登录名来自不受信任的域,不能与 Windows 身份验证一起使用. 登录失败.该登录名来自不受信任的域,不能与 Windows 身份验证一起使用. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Data.SqlClient.SqlException: 登录失败.该登录名来自不受信任的域,不能与 Windows 身份验证一起使用. 源错误: 行