2011-02-28 222 views
2

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

这里是我的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> 

我还试图用,我已经把我的浏览文件夹,并使用routes.MapPageRoute但没有任何工作简单Logon.aspx页。 routes.MapPageRoute("ASPX", "Views", "~/Logon.aspx");

许多其他网站也描述了如何实现这一点,但不要超过WebConfig配置。

我真的很感激任何帮助!

谢谢

+0

您是否在控制器或需要授权的操作上应用了[授权]属性? – eulerfx 2011-02-28 19:57:28

+0

是的,我有。但是,我开始MVC项目作为一个空的,并且从未添加LogonDisplay部分。当我这样做的时候,我看到我一直在登录,不知何故,我的应用程序自动登录了我,这就是为什么它不会将我重定向到登录页面。 ASPX部分仍然不起作用,但至少现在我可以在认证部分工作而不是重定向。 – LanFeusT 2011-02-28 20:13:50

回答

1

所以这不是很聪明。

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

当我开始一个新的非空项目时,我可以访问默认的帐户/登录控制器/操作,现在可以完美工作。

继我以前连接的一些网站添加LDAP连接字符串发挥了诀窍。