こんにちわ。
ASP.NET MVC5でWeb勤務表を作成しています。(VisualStudio2017)
Web勤務表にログインするのに、あらかじめSQLServerに登録しているUserIDとPasswordで認証してログインするようにしたいです。
プロジェクトデフォルトに備わっているASP.Net Identityの個人ユーザーアカウント認証を利用したのですが、ユーザーがメールアドレスとパスワードを設定し、ログインする仕様になっていて、それをどのように修正したらよいか分かりません。
何かアドバイスを頂けると嬉しいです。
<調査したことを追記します>
AcountViewModels.csのLoginViewModelのEmailをEmp_numに変更し、AccountController.csのLogin(post)でDBにアクセスし、入力した従業員番号とパスワードと一致するものがあるかを調べる処理を追加しました。これにより一応ログインの処理は実装出来ましたが、前までユーザ名が表示されていたところに何も表示されなくなってしまいました。おそらくawait SignInManager.PasswordSignInAsyncの処理を省いたせいで、userIdentityに何も入らなくなってしまったと思うのですが、このへんをうまく実装する方法がわかりません。
以下に自分が追加した箇所のコードを載せます。
モデル:
namespace WebApplication8.Models { ・・・ public class LoginViewModel { [Required] [Display(Name = "従業員番号")] public string Emp_num { get; set; } [Required] [DataType(DataType.Password)] [Display(Name = "パスワード")] public string Password { get; set; } [Display(Name = "このアカウントを記憶する")] public bool RememberMe { get; set; } } ・・・ }
コントローラ:
namespace WebApplication8.Controllers { ・・・ // // POST: /Account/Login [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) { if (!ModelState.IsValid) { return View(model); } // これは、アカウント ロックアウトの基準となるログイン失敗回数を数えません。 // パスワード入力失敗回数に基づいてアカウントがロックアウトされるように設定するには、shouldLockout: true に変更してください。 //var result = await SignInManager.PasswordSignInAsync(model.Emp_num, model.Password, model.RememberMe, shouldLockout: false); var result = SignInStatus.Success; var PersonalInfos = from a in db.TPersonalInfo where a.emp_num == model.Emp_num && a.password == model.Password select a; if (PersonalInfos.Count() == 0) { result = SignInStatus.Failure; } switch (result) { case SignInStatus.Success: return RedirectToLocal(returnUrl); case SignInStatus.LockedOut: return View("Lockout"); case SignInStatus.RequiresVerification: return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }); case SignInStatus.Failure: default: ModelState.AddModelError("", "無効なログイン試行です。"); return View(model); } } ・・・ } }

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/10 08:07
退会済みユーザー
2019/01/10 08:28 編集
退会済みユーザー
2019/01/23 04:23