1

所以我一直在开发一个从现有数据库中提取数据的 MVC 应用程序。我将其设计为“Intranet 应用程序”,以便用户使用其 Windows 凭据自动登录到该应用程序。这是可行的,因为属性 @User.Identity.Name 返回我的 Windows 登录名。(以及其他用户),并且他们可以访问应用程序本身。但是,当尝试访问信息所在的数据库时,出现以下错误:

[SqlException (0x80131904): 用户“**我的计算机名**”登录失败。]

它似乎正在识别我的 Windows 登录,但由于某种原因试图使用我的机器名称来访问数据库。在公司,这个特定的数据库也使用员工的 windows 用户名访问,所以我希望人们能够使用 MVC 应用程序中的内置 windows 身份验证自动访问它。

在我的 web.config 中,我将身份模拟设置为 false,身份验证模式等于 Windows,并在 appSettings 中设置了以下键:

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<add key="enableSimpleMembership" value="false"/>
<add key="autoFormsAuthentication" value="false" />

连接字符串是为我自动生成的,并且在从 Visual Studio 运行应用程序时可以检索信息,所以我只能假设这是 IIS 设置的问题。(我以前从未部署过 MVC 应用程序)

在应用程序的 IIS 设置中,我禁用了除 Windows 身份验证之外的所有身份验证。任何想法我做错了什么?如果您还需要任何其他信息,请告诉我。

4

1 回答 1

2

在您的身份验证配置中打开模拟。否则,应用程序池的标识将用于连接到您的 Sql Server。

于 2012-08-07T20:24:10.913 回答