我读过几篇关于这方面的文章(比如这个one和这个one描述了WebConfig中的一个bug ),但是没有一个描述如何在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配置。
我真的很感激在这方面的任何帮助!
谢谢
发布于 2011-03-01 04:44:58
所以这并不是很聪明。
我的问题是因为我使用了一个空的MVC项目。因此,我从来没有看到我还没有登录,这显然没有将我重定向到登录页面。当我添加@if(Request.IsAuthenticated)时,工具显示我已登录。
当我开始一个新的非空项目时,我可以访问默认的帐户/登录控制器/操作,它现在工作得很好。
遵循我之前链接的一些站点,添加LDAP连接字符串就成功了。
https://stackoverflow.com/questions/5146771
复制相似问题