2009-06-14 53 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如果找到匹配。