【问题标题】:ASP.NET, IIS security setup Windows Auth and SQL Server AccessASP.NET、IIS 安全设置 Windows Auth 和 SQL Server Access
【发布时间】:2011-02-11 12:31:49
【问题描述】:

我在配置我的 ASP.NET web.config 和我的 IIS 网站以获得我想要的设置时遇到问题。这就是我在一天结束时想要的:

  • 应用程序使用特定的 NT ID 连接到 SQL Server
  • 用于连接 SQL Server 的 NT ID 不在 web.config 中。或者至少它的密码不是。
  • 我可以使用 HttpContext.Current.User.Identity.Name(或其他方式)来获取连接到应用程序的真实用户的 NT ID。

如果我在 Visual Studio 2008 中设置 ASP.NET 3.5,这基本上都是在本地工作。但是当我部署到 IIS 时,我可以成功获得前两个项目符号,但我无法获得第三个项目符号。 Identity.Name 为空。我现在部署它的方式是在 web.config 中将模拟设置为 true,并且 IIS 启用了匿名访问,并将匿名用户设置为我要连接到 SQL Server 的 NT ID。

我用来连接 SQL Server 的连接字符串如下所示:

Server=[My Server];Database=[My DB];Trusted_Connection=Yes;

我尝试过设置其他帖子中建议的授权,但这只会让 Internet Explorer 弹出一个登录框。

这是一个运行 IIS 6.0 的 Windows Server 2003 机器。

这很可能是一个愚蠢的问题,和/或重复的问题。但是我进行了很多搜索和反复试验,似乎无法获得神奇的设置。

【问题讨论】:

  • 您似乎希望应用程序的用户成为连接数据库的用户ID?

标签: asp.net iis iis-6


【解决方案1】:

默认情况下,machine\ASPNET 帐户或 NETWORK_SERVICE 帐户,具体取决于您使用的 IIS 版本(我不确定 IIS 7 是否使用 NETWORK_SERVICE,但 6 使用了)。如果您想要一个不同的帐户,则在配置文件(用户名和密码)上应用模拟以运行该帐户。现在您可以使用 aspnet_regiis 实用程序加密配置部分的这一部分。但是你必须提供一个帐户。如果没有我所知道的这一点,我认为你无法逃脱...除非它可以通过 IIS 完成。

HTH。

【讨论】:

    【解决方案2】:

    这称为Double-Hop Problem,禁止将用户凭据转发给第三方。当他们从一台机器浏览另一台(第一跳)上的站点并将凭据转发到第三台机器(第二跳)时,就会发生这种情况。

    如果您在同一台机器上托管 IIS 和 SQL Server,则不会出现此问题。

    How to use the System.DirectoryServices namespace in ASP.NET 上发布了更多技术细节,解释了双跳问题以及主要和次要令牌。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-15
      • 1970-01-01
      相关资源
      最近更新 更多