0

ユーザーが最初にフォームに入力する MVC4 アプリケーションの作業を開始します。このフォームには、ユーザーの電子メール、一意の 9 桁の番号、およびその他の詳細を入力するフィールドがあります。私が達成したいのは、このフォームを送信した後、一意の 9 桁の番号をユーザー名として使用してユーザーをサイレントに登録し、自動生成されたパスワードをハッシュしてメンバーシップ (拡張シンプルメンバーシップ) データベースにパスワードとして保存することです。その後、パスワードが記載された電子メールがユーザーに送信されます。この点に関するヒントや助けに感謝します。

フォームに入力した後、次のリダイレクトを行います

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

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));
            }
        }

RouteConfigまた、URLを受け入れるように設定しました。フォームに入力すると、URL パラメータが設定されたページにリダイレクトされますが、何も起こりません。ユーザーは作成されません。パスワードのメール送信に関しては、問題なく修正できます。
データベースに新しいユーザーの詳細をコミットする方法について誰か助けてもらえますか

4

0 に答える 0