0

Working on an MVC4 Application where users first fill in a form as the starting point. With this form there is a field to provide user email and a unique 9 digit number and other details. What I want to achieve is after submitting this form I want the user to be silently registered using the unique 9 digit number as username, and an auto-generated password hashed and saved as password in the membership(extended simplemembership) database. An email with password will be sent to the user afterwards. I will be grateful for any hints or help in this regards.

After the form is filled, I make the following redirection

return RedirectToAction("AutoRegister", new RouteValueDictionary(new { controller = "Account", action = "AutoRegister", Uname= ViewBag.Uname, Uemail = ViewBag.Uemail }));

and I have the following code in Account Controller

    [AllowAnonymous]
    public ActionResult AutoRegister()
    {
        return View();
    }

    [AllowAnonymous]
    [HttpPost]
    public ActionResult AutoRegister(RegisterModel model,string Uname, string Uemail)
    {
        //if (ModelState.IsValid)
       if(Uemail!=null && Uname!=null)
        {
            string Upass = Membership.GeneratePassword(12, 1);
            model.Email = Uemail;
            model.UserName = Uname;
            model.Password = Upass;
            // Attempt to register the user
            MembershipCreateStatus createStatus;

            Membership.CreateUser(model.UserName, model.Password, model.Email, passwordQuestion: null, passwordAnswer: null, isApproved: false, providerUserKey: null, status: out createStatus);

            if (createStatus == MembershipCreateStatus.Success)
            {
                FormsAuthentication.SetAuthCookie(model.UserName, createPersistentCookie: false);
                return RedirectToAction("Welcome", "OnlineApplication");
            }
            else
            {
                ModelState.AddModelError("", ErrorCodeToString(createStatus));
            }
        }

I have also set the RouteConfig to accept the url. When I fill the form it redirects allright to a page with the url parameters populated but nothing happens. The user is not created. As for emailing of password I can fix that with no problems.
Could anyone assist on how I can commit the new user details in database

4

0 回答 0