在Membership.CreateUser方法中生成ApplicationID时?

时间:2013-12-29 11:27:26

标签: asp.net asp.net-membership membership-provider

我正在使用ASP.Net Membership,并想知道究竟何时生成ApplicationID。我想知道在我们使用“Membership.CreateUser”方法时,会调用哪些事件以及何时生成ApplicationID。

我用Google搜索了一段时间但找不到任何满意的答案。

任何人都可以解释这种方法的工作原理吗?

由于

1 个答案:

答案 0 :(得分:1)

  

我想知道调用什么事件以及ApplicationID是什么时候   当我们使用“Membership.CreateUser”方法时生成。

在处理对Membership表的任何请求之前(例如select / insert / update / delete), applicationName 检索 Application

例如,在 Membership.CreateUser 方法中,在创建新用户之前调用 QueryHelper.GetApplication

Application application = QueryHelper.GetApplication(membershipEntity, 
   applicationName);

// QueryHelper.GetApplication
internal static Application GetApplication(MembershipEntities ctx, 
   string applicationName)
{
    ObjectParameter[] objectParameter = new ObjectParameter[1];
    objectParameter[0] = new ObjectParameter("name", 
       applicationName.ToLowerInvariant());
Application application = ctx.CreateQuery<Application>(
"select value a FROM Applications as a WHERE ToLower(a.ApplicationName) = @name",
objectParameter).FirstOrDefault<Application>();
    return application;
}

如果应用程序为null,则会创建一个这样的应用程序 -

internal static Application CreateApplication(MembershipEntities ctx, 
   string appName)
{
   Application application = new Application();
   application.ApplicationId = Guid.NewGuid();
   application.ApplicationName = appName;
   ctx.Applications.AddObject(application);
   Application application1 = application;
   return application1;
}

关于代码来自ASP.NET Universal Providers。传统成员资格提供程序使用存储过程,但逻辑几乎相同。