2011-09-23 103 views
2

我正嘗試在asp.net mvc中創建一個具有子域的網站。但我不知道如何做到這一點。在visual studio中設置這個新的解決方案時,最好爲每個子域擁有一個不同的項目或者擁有一個項目?這顯然有一些直接的好處,例如發佈更新到一個子域而不接觸其他子域。 這是規範:在2個不同的項目/解決方案/應用程序上創建子域和共享身份驗證

1)我有很多應用程序,每個應用程序都有自己的子域,例如, App1,App2,App3。用戶將通過登錄頁面通過主域名登錄,並且此身份驗證將傳遞到應用程序。

2)我需要域來認證用戶並將認證傳遞給子域。該子域將只允許訪問經過身份驗證的用戶。 ASP.NET允許將身份驗證傳遞給子域。我需要知道的是如何設置這些項目,以便subdomian知道認證是以這種方式傳遞的。

3)我決定走下子域路線。

http://App1.domain.com/ http://App12.domain.com/

4)我也想重用代碼。有沒有什麼辦法在三個不同的子域上共享masterpage,usercontrols等?

回答

2

單獨的Web應用程序,並在每個web.config中設置domain屬性的頂級域名:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LogOn" timeout="2880" domain="domain.com" /> 
</authentication> 

這樣,當用戶在應用程序的一個驗證,身份驗證cookie將包含域屬性,它將被髮送到該域和子域中的其他應用程序,並且用戶也將自動在其他應用程序上進行身份驗證。

1

幾天前想到了類似的情況。我發現了兩個選項可用於執行「即時子域註冊」

  1. 當根域註冊時,子域註冊不會花時間!
  2. 重寫URL

在案例1我會進* .mydomain.com來在這種情況下,Web服務器(IIS)和使用IIS管理API myuser.mydomain.com重定向到物理路徑如www.mydomain.com/myuser/

在第二種情況下我會簡單地重寫www.mydomain.com/myuser/*到myuser.mydomain.com/*

認證不應該是問題,我會使用一個過濾器或類似的東西。

相關問題