【问题标题】:User.Identity.Name returning NT AUTHORITY\NETWORK SERVICE i want Domain\USERUser.Identity.Name 返回 NT AUTHORITY\NETWORK SERVICE 我想要 Domain\USER
【发布时间】:2011-03-01 16:05:28
【问题描述】:

在我的 asp.net MVC 项目中

我有一个带有连接字符串的数据库连接: 数据源=.;初始目录=dbname;集成安全=True

所有用户都可以在该连接上执行存储过程,我想记录这些用户。

所以每次执行后我都会将“User.Identity.Name”存储到另一个数据库中。 这在我的开发机器上工作得很好,但是在部署之后,要访问该站点,我必须通过 VPN 连接,然后远程桌面到运行 IIS 的同一台服务器,并在那里使用 Web 浏览器。然后我得到 User.Identity.Name:“NT AUTHORITY\NETWORK SERVICE”。我希望它是我在远程桌面中输入的可以访问数据库的凭据。

知道如何让它工作吗?

iis6 身份验证:“Windows 身份验证:已启用” 网络配置:

【问题讨论】:

    标签: asp.net asp.net-mvc authentication iis-6 credentials


    【解决方案1】:

    您需要将Impersonation 设置为true,否则网站将在用于AppPool 的凭据下运行。它在 Cassini 中工作的原因是 Cassini 在您调试时在您自己的凭据下运行。

    【讨论】:

      【解决方案2】:

      您必须使用模拟。否则,将使用应用程序池标识。基本上就是通过这个 web.config 条目完成的

      <identity impersonate="true" />
      

      这里有完整的参考资料。

      ASP.NET Impersonation

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-16
        • 2020-09-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-26
        • 2014-04-29
        • 1970-01-01
        相关资源
        最近更新 更多