..但我不是有登錄控制器!未找到路徑「/ Account/Login」的控制器或未實施IController
我得到它時,我拋出自定義錯誤。
我的意思是......是的。我從一個有示例項目的示例項目開始我的項目,並刪除了帳戶控制器,其視圖,甚至任何引用「登錄」的代碼(甚至可能提及它的web.config中的任何條目),以及它出現這個錯誤。
我會在哪裏檢查?
更新:我正在使用Active Directory而不是登錄表單。
..但我不是有登錄控制器!未找到路徑「/ Account/Login」的控制器或未實施IController
我得到它時,我拋出自定義錯誤。
我的意思是......是的。我從一個有示例項目的示例項目開始我的項目,並刪除了帳戶控制器,其視圖,甚至任何引用「登錄」的代碼(甚至可能提及它的web.config中的任何條目),以及它出現這個錯誤。
我會在哪裏檢查?
更新:我正在使用Active Directory而不是登錄表單。
好的。所以看起來我的問題是因爲我正在使用自定義[Authorize]
屬性,並且我沒有登錄頁面,因此完全沒有。我正在使用Active Directory。
根據@Lars & @Shani,顯然我需要以某種方式指向一個。
不幸的是,我不能,因爲我沒有一個,它是沒有用的創建一個。所以我想出了一種適合我的情況的方法。在我的自定義屬性[Authorize]
,我返回RedirectToRouteResult
那去我的自定義錯誤頁:
protected override void HandleUnauthorizedRequest(System.Web.Mvc.AuthorizationContext filterContext)
{
base.HandleUnauthorizedRequest(filterContext);
if (!_authorized)
{
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new
{
controller = "ErrorPage",
action = "Unauthorized"
}));
}
}
我敢肯定有幾種不同的方式來做到這一點,但是這是我與去此刻此刻..
我很高興你解決了這個問題。這似乎是您使用AD登錄進行當前設置的一個很好的解決方案。 –
對@ Html.Action(「Login」,「AccountController」)進行全局搜索並刪除它。
可能有些視圖仍然引用AccountController中的Login方法。
只需添加到您的Web配置文件這些行:
<authentication mode="Forms">
<forms loginUrl="~/home/Login" timeout="2880"></forms>
</authentication>
在loginUrl輸入正確的登錄頁面的目標,它會重定向所有標記的請求[授權]那裏,而不是賬戶/登錄。
檢查任何控制器類別或操作是否具有[Authorize]
以上的屬性。
如果用戶請求某個動作的屬性存在,他們將被重定向到一個登錄頁面,如果他們還沒有登錄。但是如果你沒有登錄頁面(如果你不' t需要用戶登錄),那麼你不應該使用這個屬性。
檢查web.config。等一下!做一個解決方案級別搜索「登錄」 – Shyju
試過。沒有運氣.. – Kevin
清理你的解決方案。刪除臨時文件。重新啓動VS – Shyju