在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的替代品,如果是的话,Microsoft的OWIN API是什么来创建角色和用户?似乎无法在MSDN中找到关于OWIN的大量文档。有没有人创建任何示例代码或知道任何解释的文档 如何使用微软的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");
}
答案 0 :(得分:0)
为了创建用户,您需要编写如下代码:
UserManager<ApplicationUser> userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
var user = new ApplicationUser() { UserName = model.UserName };
// Add the Admin role to the user.
user.Roles.Add(new IdentityUserRole() { Role = new IdentityRole("Admin") });
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
// Code after successfully creating the user.
}