我在互联网上search了近4天,现在我被卡住了。
我已经创build了一个简单的ASP MVC4 Intranet网站,并将其部署到了名为iis服务器。 那台电脑和我的电脑在同一个域内。
我的域名内有3台电脑: my_pc , iis服务器和sql server。
当我在我的电脑上input地址http://iis ,我发现我login正确:

这适用于IE和Chrome。 < – 到现在一切都好!
当我尝试在我的网页中执行sql查询时,问题就开始了 – WebAPI控制器。
在IE浏览器我得到正确的结果,但在Chrome上我得到错误: 
在Web.config里面我需要configuration:
<authentication mode="Windows" /> <identity impersonate="true" />
在IIS内部,我禁用了匿名身份validation并启用了Windows身份validation。
我的IIS是信任的委托请求到我的SQL服务器。
最奇怪的是,当我试图打开我的网页(与SQL查询),我得到错误,然后当我打开在IE浏览器(这是成功的),我刷新Chrome网站正确加载和工作一段时间(随机,有时5分钟,有时30秒)。
我尝试添加[Authorize]属性到特定的方法,但是这并没有帮助。
看起来Chrome并没有将kerberos令牌传递给IIS。
我试过这里描述的步骤: http : //dev.chromium.org/developers/design-documents/http-authentication但没有任何运气。
有人请指导我一步一步如何configuration谷歌浏览器和其余(IIS,SQL,如果需要)在Chrome中使用Windows身份validation?
你的问题是,你正在使用铬文件来解决铬的问题。 虽然相似,但它们是两种不同的浏览器。 您需要通过白名单列出可以委派给IIS的服务器来启用委派。 在Chrome中的做法与铬类似,但是在registry键的情况下,您需要使用[HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Google \ Chrome]作为铬而不是[HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Chromium] 。
阅读文档时,您会发现可以使用组策略,Chrome for Business或命令行来启用委派,但在您的设置中,我假定您使用了registry选项。 我发现设置的关键是AuthNegotiateDelegateWhitelist。 将值设置为“*”开始。 一旦你有它的工作,通过更改*为一个逗号分隔的服务器列表,将其locking到所需的服务器,无论是通过IP地址或DNS名称。 通配符是允许的。 您也可以查看AuthServerWhiteList键。