2010-09-14 15 views
2

我使用FormsAuthentication(使用Cookie)進行用戶身份驗證,並使用默認的cookie名稱(「.ASPXAUTH」)。FormsAuthentication:如何爲特定的子目錄/ MVC控制器指定不同的cookie名稱?

我需要的是一個用於「/ Admin /」虛擬目錄(由ASP.NET MVC控制器,「AdminController」支持)的不同登錄系統......就好像「/ Admin /」目錄是另一個Web應用程序,但不在我的解決方案中創建另一個Web項目。

如何在運行時自定義FormsAuthentication使用的cookie名稱? FormsAuthentication.FormsCookieName是隻讀的(並且是靜態的...),並且可以在web.config中只定制一次...

我應該創建一個自定義FormsAuthenticationModule嗎?

控制器過濾器,像下面,可能是巨大的:

[CustomFormsAuthenticationCookie("NewCookieName")] 
public class AdminController : Controller 
{ 

回答

1

訣竅是底層的認證框架真的不能處理這一點 - 你不能運行多個窗體身份驗證位。最簡單的解決方案是將管理員權限分成一個單獨的網站,該網站最終將生活在其他地方,而不會陷入公共網站的身份驗證。

+0

不幸的是,我在工作中提出了這個非常相同的想法,但他們拒絕了它們:他們不希望獲得額外的Web應用程序:( – Notoriousxl 2010-09-14 21:12:26

相關問題