喜開發商/建築師,爲IIS或Single上的每個客戶端分別使用ASP應用程序?
這更多的是一個建築問題:
我有一個Web應用程序。該應用程序使用ASP Membership API(來自認證)進行用戶/角色管理。
我們爲每個客戶託管一個單獨的應用程序。所以基本上每個客戶都有一個ASP成員數據庫中的應用程序名然後該客戶根據他的需要創建他的角色/用戶。
我們爲每個客戶端分別在客戶端名稱的虛擬目錄下託管IIS的同一網站的原因是,所有客戶端都有其單獨的應用程序名稱(根據ASP成員身份),並且底層數據庫是單獨的也爲每個客戶。
所以每個客戶端都有一個單獨的URL,例如:http://mysite/client1。然後client1有他自己的用戶,角色。應用程序使用的底層應用程序數據庫是個人客戶。
Web應用程序和數據庫模式對於所有客戶端完全相同。
我不能對數據庫部分做出任何決定。所以我不打算討論這個問題。
但我想改變爲每個客戶端託管單獨的應用程序的方法。我想舉辦對所有客戶端一個應用程序:
這會帶來一些問題:
Q1。我將如何創建這些網址:http://mysite/client1,http://mysite/client2(因爲我不能將所有客戶端的名稱放在主登錄頁面上,然後一旦用戶選擇客戶端名稱,提供用戶名/密碼....我無法這樣做,因爲業務性質)*
Q2。我無法創建單個應用程序(在IIS和ASP成員級別上),然後按角色分隔客戶端,因爲所有客戶端都有自己的角色,另外,2個或更多客戶端可以具有相同名稱的用戶;所以userX用於client1,userX用於client2。這些用戶是不同的,但他們碰巧有相同的名字。
* Q1的一個解決方案是:我創建一個新的轉發器應用程序,該應用程序在客戶端的虛擬目錄下分別託管在每個客戶端的IIS中。當客戶端打開它們的URL(例如:http://mysiteforworder/client1)時,它們被重定向到(http://mysite/Default.apsx?app = hjuk98jkio8),其中(hjuk98jkio8)是我們在內部使用的客戶端的加密名稱。
這將解決Q1,但不是Q2。
讓我知道可以怎麼做...
或者可能是這種情況下的最佳方法,是單獨託管應用程序(因爲它現在正在發生......因爲即使所有應用程序的外觀/行爲都相同,客戶端在這種情況下實際上是單獨的應用程序......什麼你們建議...) – user402186