Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 使用SimpleMembershipProvider创建用户帐户_Asp.net Mvc 4_Simplemembership - Fatal编程技术网

Asp.net mvc 4 使用SimpleMembershipProvider创建用户帐户

Asp.net mvc 4 使用SimpleMembershipProvider创建用户帐户,asp.net-mvc-4,simplemembership,Asp.net Mvc 4,Simplemembership,我使用的是MVC4,我试图在用户配置文件中添加一个名为AddedById(用于内部管理)的新字段 以下是我所拥有的: WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new { FirstName = model.FirstName, LastName = model.LastName,

我使用的是MVC4,我试图在用户配置文件中添加一个名为AddedById(用于内部管理)的新字段

以下是我所拥有的:

WebSecurity.CreateUserAndAccount(model.UserName, model.Password, new
                {
                    FirstName = model.FirstName,
                    LastName = model.LastName,
                    AddedDate = DateTime.UtcNow
                    AddedByID = // to sure how to get the id because the account has not been created yet.
                });

我应该在创建帐户后更新AddById吗?

因为支持团队可以为某人创建帐户

如果是这种情况,请确保
AddedByID
为空
,然后让
支持团队在创建
用户之前先进行身份验证

然后,使您的
注册操作
如下所示

    //
    // POST: /Account/Register

    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public ActionResult Register(RegisterModel model)
    {
        if (ModelState.IsValid)
        {
            // Attempt to register the user
            using (EfDb db = new EfDb())
            {                                     
                try
                {
                    var userProfile = db.UserProfiles.Local.SingleOrDefault(u => u.UserName == User.Identity.Name)
                                ?? db.UserProfiles.SingleOrDefault(u => u.UserName == User.Identity.Name);

                        WebSecurity.CreateUserAndAccount(
                            model.UserName,
                            model.Password,
                                new
                                    {
                                        FirstName = model.FirstName,
                                        LastName = model.LastName,
                                        AddedDate = DateTime.UtcNow,
                                        AddedByID = userProfile.UserId
                                    }
                            );

                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }
        }

        // If we got this far, something failed, redisplay form
        return View(model);
    }

既然你已经有了
Userid
Userprofile
?@KomengeMwandila,你为什么需要它呢?因为支持团队可以为某人创建帐户。如果管理员正在创建帐户,那么该用户已登录。。。因此,您拥有该ID,可以在创建新帐户时将其包括在内。谢谢。我知道你这里有什么,但是当用户创建自己的帐户时呢?最好使用创建用户并更新AddById字段的事务处理吗?@hbrock我建议将
AddedById
Null设置为可空
,这样当账户的所有者是创建账户的人时,
AddedById
就是
Null
,这应该足以说明是谁创建了账户。此外,还可以避免不必要的返回数据库的过程。