然后我在连接字符串中连接到集成安全性= SSPI的sql Server.
这适用于Microsoft Internet Explorer,它在我登录域时自动验证我,我可以看到@R_502_395@n_user是我的域帐户,sql Server连接字符串工作正常.
但是,当我使用Firefox登录时,事情是不同的.
首先,我被提示进行身份验证,这是正确的,因为Firefox未配置为信任本地主机足以自动发送凭据(实际上我知道如何引入这种信任,这不是问题).我然后登录,这再次是好的,只要我输入域帐户的详细信息一切都很好.事实上,一个调试语句或两个显示@R_502_395@n_user仍然是我的域帐户,一切都很好.
但是,当我连接到sql Server(在远程服务器框上运行,我的域帐户具有完整的sysadmin权限)时,我收到以下错误:
Microsoft OLE DB Provider for sql Server (0x80040E4D) Login Failed for user 'NT AUTHORITY\ANONYMOUS @R_502_395@N'.
这对我来说,认证堆栈有问题,因为某些原因,当我使用firefox的Windows身份验证进行身份验证时,IIS不会作为经过身份验证的帐户运行.
使用Google Chrome时也可以正常使用.
有什么建议么?
解决方法
Firefox支持Kerberos,但是您必须告诉它信任哪些域,以发送Kerberos令牌.
>打开Firefox
>在地址栏中键入:about:config
> Firefox3.x及更高版本要求您同意您将谨慎行事.
>加载配置页后,在过滤器框中键入:network.negotiate-auth
>通过双击行修改network.negotiate-auth.trusted-uris并输入yourdomain.com
>可以通过逗号分隔多个域,例如yourdomain.com,yourotherdomain.com
注意:这与gbn的solution不同,后者只是将firefox配置为不提示您在登录时输入域帐户详细信息.
此外,如果您已经尝试通过当前Firefox会话中的堆栈进行身份验证,则需要重新启动Firefox才能使其工作.