【问题标题】:SQL Server - windows authSQL Server - Windows 身份验证
【发布时间】:2020-01-14 07:57:25
【问题描述】:

我有 2 台服务器:

Windows Server 2008 和 SQL SERVER 2012

带有 IIS 8 的 Windows Server 2008

我需要通过 IIS 服务器使用 php 应用程序从客户端机器登录到 SQL 服务器。

我阅读了很多文章并配置了所有文章,它可以工作,但我有一个问题 - 它只能在 IE 浏览器(或 EDGE)中正常工作,但不能在基于 Chromium 或 Firefox 的浏览器中正常工作。

如果我启动 IE,php 应用程序成功连接到 SQL 服务器,否则在非 IE 浏览器中我收到错误 NT AUTHORITY\ANONYMOUS LOGON。

我总是在 IIS 上成功登录(检查 $_SERVER['REMOTE_USER'];)

需要帮助

【问题讨论】:

  • 您如何连接到 SQL Server(您使用哪个 PHP 扩展)?并且,如果可能的话,示例代码将在这里有所帮助。
  • PHP 7.3.7 和 sqlsrv 5.6.1 检查连接的简单代码 print $_SERVER['REMOTE_USER']; $serverName = "服务器名称\实例名称"; $connectionInfo = array("数据库"=>"存档"); $conn = sqlsrv_connect($serverName, $connectionInfo); if( $conn ) { echo "连接已建立。
    "; }else{ echo "无法建立连接。
    ";死(print_r(sqlsrv_errors(),真)); }
  • 如何将用户凭据从客户端传递到服务器?你只写,它适用于 IE 和 Edge。

标签: php sql-server iis


【解决方案1】:

IIS 需要将 Kerberos 票证传递给 SQL Server,此方案才能正常工作。 IE 正在获取工作站会话票证,而 Firefox 正在协商它自己的身份验证(而不是 Kerberos)。

要在 Mozilla Firefox 中启用集成 Windows 身份验证 (IWA),您可以按照以下步骤操作:

  1. 打开火狐

  2. 在地址栏中,键入 about:config。在提示谨慎操作时,同意继续。

  3. 配置页面加载后,在过滤器框中输入:network.automatic。您应该会看到 network.automatic-ntlm-auth.trusted-uris 的搜索结果

  4. 单击“确定”并重新启动 Firefox

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2010-10-05
    相关资源
    最近更新 更多