当前位置:  开发笔记 > 后端 > 正文

使用asp.net的Windows身份验证问题

如何解决《使用asp.net的Windows身份验证问题》经验,为你挑选了1个好方法。

我有一个asp.net应用程序,应该从两个SQL Server访问数据.其中一个SQL Server与IIS存在于同一台机器上(我们称之为SQLSERVER1),而另一台SQL服务器存在于另一台机器上(SQLSERVER2).

两个SQL服务器都信任连接字符串.我的web.config文件中的模拟已设置为true.我在IIS和web.config中都使用Windows身份验证.

当我尝试从SQLSERVER2访问数据时,我因用户(null)错误而登录失败.我通过Windows登录的用户在SQLSERVER2中作为SQL服务器帐户存在.

可能的原因是什么?

注意: 这是一个新手问题恕我直言.

注意:使用的IIS是6.0(Windows 2003).它未设置为IIS 5.0隔离模式.

编辑:被模仿的用户是域用户

加成:

我还想声明,当我将其作为运行IIS的服务器的客户端访问时,我收到此错误消息.换句话说,让我说我正在使用机器A,IIS和SQLSERVER1在机器B上,而SQLSERVER2在机器C上.

当我在机器B上工作时,我没有收到此错误消息.这让我更加难过.



1> Sean Hanley..:

这绝对是一个授权问题.正如一位人士指出的那样,您需要确保使用Kereberos身份验证.旧款NTLM不会削减它.这里有更多关于Kerberos与NTLM的内容.

简而言之,如果您有一个Web服务器和一个数据库,并且您希望Web服务器在发出数据库请求时模拟用户(以便您可以直接在每个用户或用户组的基础上设置数据库的权限)重新表演一个双跳.凭据必须先从用户的计算机到Web服务器,然后再到数据库.可以想象,数据库必须信任网络服务器"不做恶",否则这可能是一个极其危险的安全漏洞.因此,您必须设置在Windows Server世界"委托"中调用的内容...

微软在这里有一篇关于这一切的好文章.此外,您还可以查看像文章这样得到的如何设置这一切的想法.我们经常遇到这种情况,一开始可能会很痛苦,特别是因为作为开发人员,你可能无法直接控制服务器(尤其是生产服务器)而且你需要花费大量时间大厅里的服务员们.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有