IIS 和 Asp.net MVC Intranet 应用程序的 Windows 身份验证问题
Posted
技术标签:
【中文标题】IIS 和 Asp.net MVC Intranet 应用程序的 Windows 身份验证问题【英文标题】:Windows Authentication issue with IIS and Asp.net MVC Intranet Application 【发布时间】:2012-08-07 20:19:36 【问题描述】:所以我一直在开发一个从现有数据库中提取数据的 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 身份验证之外的所有身份验证。任何想法我做错了什么?如果您还需要任何其他信息,请告诉我。
【问题讨论】:
你的 sql 连接字符串是什么样的? 【参考方案1】:在您的身份验证配置中启用模拟。否则,应用程序池的标识将用于连接到您的 Sql Server。
【讨论】:
哇,我发誓我试过了,但这确实有效。谢谢楼主!以上是关于IIS 和 Asp.net MVC Intranet 应用程序的 Windows 身份验证问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 Asp.Net MVC 和 IIS 上传大于 3GB 的文件
ASP.Net MVC 3/4 托管在 IIS 7.5 默认处理程序映射上