2011-02-28 297 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連接字符串發揮了訣竅。