【问题标题】:How work with Active Directory in ASP.NET MVC如何在 ASP.NET MVC 中使用 Active Directory
【发布时间】:2012-09-26 05:30:32
【问题描述】:

抱歉,我创建的问题已经有了答案,但我不明白。

我需要一个使用 AD 和用户角色的简单应用程序。

首先是我在获取连接字符串时遇到的问题。我得到了一个用户,并说它是这样连接的:

LDAP://CN=User_1,OU=Test,OU=ADTestOU,DC=tv-tel,DC=local

web.config 中添加什么?

  <connectionStrings>
    <add name="ADConnectionString" connectionString="LDAP://CN=User_1,OU=Test,OU=ADTestOU,DC=tv-tel,DC=local" />
  </connectionStrings>
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
    <!--Make sure you have fomrs authentication enabled.-->
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="2880" />
    </authentication>
    <authorization>
      <deny users="?"/>
      <allow users="*"/>
    </authorization>
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
    <profile defaultProvider="DefaultProfileProvider">
      <providers>
        <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
      </providers>
    </profile>
    <membership defaultProvider="MyADMembershipProvider">
      <providers>
        <add
        name="MyADMembershipProvider"
        type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
        connectionStringName="ADConnectionString"
        connectionProtection="Secure"
        connectionUsername="user"
        connectionPassword="pwd"
        attributeMapUsername="sAMAccountName"
        enableSearchMethods="true"
        attributeMapEmail="mail"
/>
      </providers>
    </membership>

    <roleManager defaultProvider="DefaultRoleProvider">
      <providers>
        <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
      </providers>
    </roleManager>
    <sessionState mode="InProc" customProvider="DefaultSessionProvider">
      <providers>
        <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
      </providers>
    </sessionState>
  </system.web>

【问题讨论】:

  • 研究使用 而不是 'forms'

标签: c# asp.net-mvc active-directory


【解决方案1】:

如果您想在 AD 中使用 Windows 身份验证,您需要在 web.config 中使用 &lt;authentication mode="windows" /&gt; 而不是 forms

尝试使用 Intranet 应用程序模板创建一个新的 ASP.NET MVC 3 应用程序,它会为您设置好。

还要确保您已正确配置 IIS 并启用 Windows 身份验证。当您使用 Intranet 模板创建新项目时,它会为您生成一个文本文件,说明如何逐步进行设置。

【讨论】:

  • 那么连接字符串是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多