在 VisualStudio 2013 RC 中,使用 MVC5,在 AccountController.cs 中,我必须修改 Login 方法以调用 WebSecurity.Login,因为我仍在使用 WebSecurity 和 Webmatrix 添加用户和用户角色。我使用 Entity Framework 6 种子方法使用 WebSecurity 和 Webmatrix API 填充用户和角色。在我的代码示例中,WebSecurity.Login 将处理本地用户帐户,而 CheckPasswordAndSignInAsync 将处理 Google 帐户登录。
OWIN 是否应该替代 Webmatrix 和 Websecurity API,如果是的话,微软创建角色和用户的 OWIN API 是什么?在 MSDN 中似乎找不到关于 OWIN 的太多文档。是否有人创建了任何示例代码或知道任何解释如何使用 Microsoft 的 OWIN 风格的文档?您是否必须编写自己的代码来将角色和用户填充到 OWIN 生成的表中,例如 AspNetUsers 和 AspNetUserRoles?
这是登录方法:
公共异步任务登录(LoginViewModel 模型,字符串 returnUrl){
if (ModelState.IsValid)
{
// Validate the password
IdentityResult result = await IdentityManager.Authentication.CheckPasswordAndSignInAsync(AuthenticationManager, model.UserName, model.Password, model.RememberMe);
if (result.Success)
{
return RedirectToLocal(returnUrl);
}
//added this for roles to work
else if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))
{
return RedirectToLocal(returnUrl);
}
else
{
AddErrors(result);
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
这是注销方法:
// POST: /Account/LogOff
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult LogOff()
{
AuthenticationManager.SignOut();
WebSecurity.Logout();
return RedirectToAction("Index", "Home");
}