2

我們有一個簡單的ASP.NET應用程序,它使用ASP.NET SqlMembershipProvider,並且都很棒。ASP.NET認證 - 多應用程序和多用戶數據庫

我們想要在同一臺服務器上創建第二個應用程序,也使用SqlMembershipProvider,但使用不同的「applicationName」,以便兩個應用程序之間的用戶帳戶保持獨立。

它看起來像這樣做將通過使兩個不同的應用程序域(即他們都有自己的web.config),但我希望只是把它們放在不同的目錄,所以我沒有3網.configs(每個應用程序和主應用程序都有一個)必須保持同步。所以我後爲:

/web.config 
/APP1 (uses membership provider in /web.config, with userlist A) 
/APP2 (uses membership provider in /web.config, with userlist B) 

它看起來簡單定義使用不同「的applicationName」值的多個成員資格提供。

但是,您如何告訴system.web.authentication節點要使用哪個成員資格提供程序?

據我所知,它將始終使用默認值。

回答

0

使用您的結構,我認爲你必須實現上會員提供自己的包裝,有效地創建自己的供應商,只是襯層的請求,並根據修改的應用程序目錄中的應用程序名稱值。

1

如果我正確地讀出你的情況下,它聽起來就像是兩個應用程序之間的唯一區別是「應用程序名稱」屬性。

因此,如果您設置,在各兩個應用程序中的的Application_Start(Global.asax中),你應該是金色的。

protected void Application_Start(object sender, EventArgs e) 
{ 
    Membership.Provider.ApplicationName = "test"; 
} 
+0

不會有多個Global.asax文件(即一個在APP1文件夾和一個在APP2文件夾中)需要單獨的web.config文件? (我的假設是,單獨的web.config文件中實際上是什麼定義一個單獨的「應用程序」) – DougN 2011-02-19 14:45:02

+0

沒有,獨立web.config文件中並沒有使它成爲一個單獨的應用程序。在IIS中通過轉到虛擬目錄的屬性並單擊應用程序設置部分中的創建按鈕來配置應用程序。是的,你需要使用兩個web.configs。 – Greg 2011-02-21 18:57:06

+0

有什麼原因的Application_Start邏輯不能稍微複雜一些,剛開的應用程序根目錄,並使用它來確定一個合適的名字?因此,具有不同根的兩個應用程序可能會在沒有多個web.config文件的情況下獲得不同的名稱 – Chris 2012-01-26 10:11:47

相關問題