2009-06-14 64 views
5

我正在使用MembershipProvider,並且由於我將它設置爲與一些自定義安全性結合使用,我需要獲取當前應用程序的ApplicationId(Guid)。使用Membership.ApplicationName獲取應用程序名稱很容易,但我發現沒有簡單的方法來獲取Id。在ASP.NET中獲取當前ApplicationId MembershipProvider

回答

6

我相信你將需要編寫自己的代碼(如自定義存儲過程)來獲取ID。此數據旨在供內部提供者的內置實現專用,而不是提供者接口的一部分(即,在提供者的某些實現中可能不存在)。用戶ID也一樣。好消息是,爲默認實現編寫存儲過程非常簡單。

你只需要:

SELECT ApplicationId FROM aspnet_Applications 
WHERE ApplicationName = 
    (System.Web.Security.Membership.Provider.ApplicationName 
     from the ASP.NET code) 

你可能要重新考慮,如果你真的需要這個ID

+0

我認爲你是對的,沒有辦法在框架內建立想法。自定義SQL是唯一的方法。 – Craig 2009-06-15 00:02:39

0

默認SQLMembership模式確實有一個存儲採購,你卡電話。 aspnet_Applications_CreateApplication, @ApplicationName (input), @ApplicationID (output) 這將創建一個新的ID或返回現有的ID如果找到匹配。