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