【问题标题】:How to connect to SQL Server database in web using client windows credentials如何使用客户端 Windows 凭据连接到 Web 中的 SQL Server 数据库
【发布时间】:2015-12-03 15:30:01
【问题描述】:

场景:我不想使用服务器 Windows 凭据连接到数据库,而是想使用该人访问网站的 Windows 凭据。

  • IIS 托管服务器 IP: : 10.10.10.10
  • 从客户端机器访问网站:10.10.10.11

我想使用 10.10.10.11 的登录用户的凭据来访问数据库。

有没有办法做到这一点?我尝试在谷歌广泛搜索,但未能得到正确的答案。请让我知道如何实现这一目标,或指导我完成这项工作。

【问题讨论】:

  • 我认为您需要设置和使用一些模拟(通过 web.config)以及连接字符串修饰符“Integrated Security=true”,但我从未这样做过,所以我无法提供具体方向。也许这会给你一些想法。
  • 我认为只有当客户端在同一个域上时,集成安全才能工作

标签: c# asp.net ado.net windows-authentication


【解决方案1】:

如果使用 Windows 身份验证,您可以简单地使用 Impersonation 让 Web Worker 进程的当前线程使用客户端的用户凭据

在 web.config 中:

<configuration>
  <system.web>
    <identity impersonate="true" />
  </system.web>
</configuration>

并通过将此属性添加到连接字符串使 ado.net 连接使用同一用户(假设您使用 SQL Server 或任何其他支持此选项的 DBMS)

Integrated Security=sspi

【讨论】:

    【解决方案2】:

    把配置改成

    <configuration>
      <system.web>
        <authentication mode="Windows"/>
        <identity impersonate="true" />
      </system.web>
    </configuration>
    

    然后转到 IIS 服务器>>站点>>网站>>身份验证

    Anonymous Authentication >> Disabled
    ASP.Net Impersonation    >> Enabled
    Basic Authentication     >> Enabled
    Forms Authentication     >> Disabled
    Windows Authentication   >> Disabled
    

    这将生成凭据弹出窗口。输入凭据后,它将用于连接到数据库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 2023-03-18
      • 2020-03-22
      • 1970-01-01
      相关资源
      最近更新 更多