IIS 上 asp.net mvc Intranet Web 应用程序的基本身份验证与 Windows 身份验证

Posted

技术标签:

【中文标题】IIS 上 asp.net mvc Intranet Web 应用程序的基本身份验证与 Windows 身份验证【英文标题】:Basic Authentication Versus Windows Authentication for an asp.net mvc intranet web application on IIS 【发布时间】:2014-02-05 13:56:46 【问题描述】:

我在 IIS 7.0 下部署了一个 asp.net MVC Web 应用程序。由于它是一个 Intranet Web 应用程序,因此我在 IIS 内的网站上禁用了表单身份验证、基本身份验证和匿名访问服务。虽然我只启用了 Windows 身份验证服务。 但是目前在包含 asp.net mvc Web 应用程序的同一域内定义的用户可以登录到该应用程序,而在另一个受信任域下定义的用户(在远程计算机上的 AD 内)无法访问该应用程序(他们将从他们的 Web 浏览器获得提示的用户名和密码,但无法进行身份验证)。 所以我的问题是我是否可以定义 IIS 服务器内的 windows 身份验证服务应该使用哪个域和/或哪个 AD 来验证登录用户?

【问题讨论】:

见***.com/questions/10891156/… ? 但在我的情况下,两个域都是可信的,我可以从部署了 aspnet mvc 的机器上 ping AD。所以您提供的链接在我的情况下无效:( 您是否像建议的那样运行 Kerberos 身份验证? (我不知道这是否相关) 从哪里可以查到这个? 见serverfault.com/questions/31850/… ? (好像是在AD配置中) 【参考方案1】:

http://msdn.microsoft.com/en-us/library/ff650307.aspx 呢?

您是否尝试过向不同的 AD 声明连接字符串?

【讨论】:

谢谢。您的意思是在我的 web.config 文件中添加连接字符串?如果是,我尝试这样做,但我需要传递服务帐户用户名和密码才能连接到 AD。但不知道如何在我的连接字符串中定义用户名和密码,你能帮忙吗? @johnG 或者您可能不需要定义它,因为用户会尝试直接针对 AD 进行身份验证(来自网站offcourse)? 我有一个服务帐户可以连接到 AD 。但你的意思是我不需要将它包含在连接字符串中? 暂时不要尝试,如果这不能解决您的问题,请使用强制用户,以便找到问题 现在我定义了以下 。其中 v800011 是 AD 服务器名称,而 ad-domain 是我需要强制使用 Windows 身份验证的域。我的连接字符串语法对吗?

以上是关于IIS 上 asp.net mvc Intranet Web 应用程序的基本身份验证与 Windows 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

IIS6 上的 ASP.NET MVC

IIS 7.5 上的 ASP.NET MVC

IIS 7.5 上的 ASP.NET MVC

在 IIS Express 或其他 WebServer 上部署 ASP.NET MVC 应用程序?

vs2012发布asp.net mvc4的网站到iis上,发布后在访问数据库的地方出错?

IIS 上 asp.net mvc Intranet Web 应用程序的基本身份验证与 Windows 身份验证