【发布时间】: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