如何告诉ASP.NET应用程序使用什么Active Directory?

时间:2013-12-05 04:08:55

标签: asp.net asp.net-mvc iis active-directory windows-authentication

IIS配置:

Anonymous Authentication    Enabled
ASP.NET Impersonation       Enabled
Windows Authentication      Enabled
*the rest is disabled

Web.Config中:

<add name="ADConn" connectionString="LDAP://192.168.0.21" />
.
.
.
<authentication mode="Windows" />

<authorization>
  <allow users="*"/>
  <deny users="?" />
</authorization>

<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"/>
<identity impersonate="true"/>

<membership defaultProvider="ADMembership">
  <providers>
    <add name="ADMembership"
         type="System.Web.Security.ActiveDirectoryMembershipProvider"
         connectionStringName="ADConn"
         connectionUsername="dominic"
         attributeMapUsername="sAMAccountName"
         connectionPassword="p@ssw0rd" />
  </providers>
</membership>

在我的网络应用程序中:

[Authorize]
public class HomeController : Controller
{

我正在尝试将我的应用程序从Form转换为Windows身份验证。使用此配置,页面会提示我使用登录对话框。当我使用我的AD帐户时,我无法登录,但当我使用本地帐户时,我可以访问该页面。为什么?我如何告诉我的应用程序使用特定的AD?我的配置是否正确?

重要说明:

  • 我的IIS和AD位于不同的计算机上,并且它们不在同一个域中。
  • 我的IIS和客户端在同一台计算机上。
  • 我的应用程序使用AD进行表单身份验证。
  • IIS版本:6.1
  • MVC版本:4
  • AD操作系统:Windows 2008
  • 客户端和IIS操作系统:Windows 7

1 个答案:

答案 0 :(得分:1)

这是我认为正在发生的事情 当您尝试打开应用程序时,浏览器将发送您当前的AD凭据(如果IE配置为自动执行此操作) 由于您使用的是asp.net模拟,如果AD帐户无权访问应用程序文件夹,它将尝试使用匿名用户帐户,而该用户帐户也无法访问。 您可能需要为IIS中定义的匿名用户添加应用程序文件夹的安全访问权限,否则从IIS中删除匿名访问 您可以查看以下链接以了解设置权限准则    Guidelines for Resolving IIS Permissions Problems