【问题标题】:LDAP Authentication MVC 3LDAP 身份验证 MVC 3
【发布时间】:2011-02-28 19:45:23
【问题描述】:

我已经阅读了几篇关于这个的帖子(例如这个one 和这个one 描述了WebConfig 中的一个错误),但没有一篇描述了关于如何在MVC3 上实现LDAP 身份验证的完整说明。我一直在使用 Web 表单做这件事,没有任何问题,但在 MVC 中,我目前的主要问题是应用程序永远不会重定向到我的身份验证/登录控制器/操作。

这是我的 WebConfig:

<connectionStrings>
    <add name="ADConnectionString" connectionString="LDAP://blablabla.net"/>
</connectionStrings>

<authentication mode="Forms">
  <forms loginUrl="~/Authentication/Login" timeout="100000" name="adAuthCookie" />
</authentication>

<membership defaultProvider="blablablaMembershipProvider">
  <providers>
    <add name="blablablaMembershipProvider"
         type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0,Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
         connectionStringName="ADConnectionString"
         connectionProtection="Secure"
         attributeMapUsername="sAMAccountName"
         enableSearchMethods="false" />
  </providers>
</membership>

我也尝试过使用我放在 Views 文件夹中的简单 Logon.aspx 页面并使用 routes.MapPageRoute 但这也不起作用。 routes.MapPageRoute("ASPX", "Views", "~/Logon.aspx");

许多其他网站也描述了如何实现这一点,但只限于 WebConfig 配置。

非常感谢您对此提供任何帮助!

谢谢

【问题讨论】:

  • 您是否将 [Authorize] 属性应用于需要授权的控制器或操作?
  • 是的,我有。但是,我将 MVC 项目作为一个空项目启动,并且从未添加过 LogonDisplay 部分。当我这样做时,我看到我一直在登录,不知何故我的应用程序自动让我登录,这就是为什么它从来没有将我重定向到登录页面的原因。 ASPX 部分仍然不起作用,但至少现在我可以处理身份验证部分而不是重定向。

标签: asp.net asp.net-mvc asp.net-mvc-3


【解决方案1】:

所以这不是很聪明。

我的问题是由于我使用的是空的 MVC 项目而引起的。因此,我从未看到我尚未登录,这显然没有将我重定向到登录页面。 当我添加 @if(Request.IsAuthenticated) 时,该工具显示我已登录。

在我开始一个新的非空项目的那一刻,我可以访问默认的 Account/LogOn 控制器/操作,现在可以完美运行。

按照我之前链接的一些网站来添加 LDAP 连接字符串就成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-07
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 2017-06-03
    • 2011-09-23
    • 2017-01-09
    • 2015-05-06
    相关资源
    最近更新 更多