在過去的幾天我一直在試圖獲得登錄功能爲我的ASP.NET MVC應用程序的工作。我的應用程序的用戶數據存儲在MS SQL數據庫(2008 R2)中。此數據表如下:ASP.NET MVC身份登錄值
table EMPLOYEE
EMPLOYEECODE int identity
NAME varchar(75) not null
PASSWORD varchar(255) not null
導致使用實體框架下面的模型:
public partial class EMPLOYEE
{
public int EMPLOYEECODE { get; set; }
public string NAME { get; set; }
public string PASSWORD { get; set; }
}
我想這樣做,是編輯所提供的(默認)的AccountController到使其能夠使用EMPLOYEE(EMPLOYEECODE,PASSWORD)來驗證和登錄用戶。我想我需要改變我的UserManager,使其使用EMPLOYEE和EMPLOYEECODE和PASSWORD字段,但我不知道如何。當前登錄的方法如下:
public AccountController()
: this(new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext())))
{
}
我怎麼能解決這個問題:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
if (ModelState.IsValid)
{
var user = await UserManager.FindAsync(model.UserName, model.Password);
if (user != null)
{
await SignInAsync(user, model.RememberMe);
return RedirectToLocal(returnUrl);
}
else
{
ModelState.AddModelError("", "Invalid username or password.");
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
我的UserManager如下實例化?我也嘗試使用身份驗證cookie,但我不知道如何從cookie中檢索用戶名。任何幫助將不勝感激!
如果證書與數據庫中的證書相匹配,使用FormsAuthentication.SetAuthCookie(用戶名)會這樣嗎?如果是這樣,我如何解密認證以檢查哪個用戶與認證cookie相匹配。 – Simon