Asp.Identity2.1.0的修改
来源:互联网 发布:淘宝电影 编辑:程序博客网 时间:2024/04/28 06:03
1.创建用户:
public async Task<ActionResult> Create(RegisterViewModel userViewModel, params string[] selectedRoles)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser { UserName = userViewModel.Email, Email = userViewModel.Email };
var adminresult = await UserManager.CreateAsync(user,userViewModel.Password);
2.修改密码:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> ResetPassword(ResetViewModel model)
{
if (!ModelState.IsValid)
{
return View(model);
}
var user = await UserManager.FindByNameAsync(model.Email);
user.PasswordHash=UserManager.PasswordHasher.HashPassword(model.Password);
if (user == null)
{
// Don't reveal that the user does not exist
return RedirectToAction("Index", "UsersAdmin");
}
var pass=UserManager.PasswordHasher.HashPassword(model.Password);
user.PasswordHash = pass;
var result =await UserManager.UpdateAsync(user);
3.角色:
// GET: /Users/Edit/1
public async Task<ActionResult> Edit(string id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var user = await UserManager.FindByIdAsync(id);
if (user == null)
{
return HttpNotFound();
}
var userRoles = await UserManager.GetRolesAsync(user.Id);
return View(new EditUserViewModel()
{
Id = user.Id,
Email = user.Email,
RolesList = RoleManager.Roles.ToList().Select(x => new SelectListItem()
{
Selected = userRoles.Contains(x.Name),
Text = x.Name,
Value = x.Name
})
});
}
// POST: /Users/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Edit([Bind(Include = "Email,Id")] EditUserViewModel editUser, params string[] selectedRoles)
{
if (ModelState.IsValid)
{
var user = await UserManager.FindByIdAsync(editUser.Id);
if (user == null)
{
return HttpNotFound();
}
user.UserName = editUser.Email;
user.Email = editUser.Email;
var userRoles = await UserManager.GetRolesAsync(user.Id);
selectedRoles = selectedRoles ?? new string[] { };
IEnumerable<string> sss=selectedRoles.Where(selectedRole => selectedRole.ToString() != "false");
string[] ss= sss.ToArray<string>();
if (ss != null)
{
if (userRoles.Count > 0)
{
var delresult = await UserManager.RemoveFromRolesAsync(user.Id, userRoles.ToArray<string>());
if (!delresult.Succeeded)
{
ModelState.AddModelError("", delresult.Errors.First());
return View();
}
}
var result = await UserManager.AddToRolesAsync(user.Id, ss);
if (!result.Succeeded)
{
ModelState.AddModelError("", result.Errors.First());
return View();
}
}
return RedirectToAction("Index");
}
ModelState.AddModelError("", "Something failed.");
return View();
}
4.UserModel
using System.Collections.Generic;
using System.Web.Mvc;
using System.ComponentModel.DataAnnotations;
namespace IdentitySample.Models
{
public class RoleViewModel
{
public string Id { get; set; }
[Required(AllowEmptyStrings = false)]
[Display(Name = "角色")]
public string Name { get; set; }
}
public class EditUserViewModel
{
public string Id { get; set; }
[Required(AllowEmptyStrings = false)]
[Display(Name = "用户名称")]
public string Email { get; set; }
public IEnumerable<SelectListItem> RolesList { get; set; }
}
public class ResetViewModel
{
public string Id { get; set; }
[Required]
/*[EmailAddress]*/
[Display(Name = "用户名")]
public string Email { get; set; }
[Required]
[StringLength(100, ErrorMessage = "{0}至少{2}个字符.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "密码")]
public string Password { get; set; }
[DataType(DataType.Password)]
[Display(Name = "确认密码")]
[System.ComponentModel.DataAnnotations.Compare("Password", ErrorMessage = "两次输入密码必须一样.")]
public string ConfirmPassword { get; set; }
public string Code { get; set; }
}
}
- Asp.Identity2.1.0的修改
- Identity2.0
- 修改的海阳asp木马
- ASP注册表修改的方法
- 动态修改asp.net的title值
- javascript修改ASP.NET的DropDownList
- ASP修改文件名、重命名的方法
- ASP.NET MVC5修改namespace的问题
- 用asp实现的代码批量修改程序,fso相关
- asp.net 中,微软tree控件的一个bug修改。
- 关于修改ASP.NET页导航的样式
- ASP.NET中数据库的操作初步----增加、删除、修改
- ASP+MS SQL在线修改Serv-u的密码教程
- jsp中类似asp查询并修改数据的做法
- 如何修改Asp.net2.0默认WebSite的LocalSqlServer设置
- 在ASP.net中动态修改Web的标题
- 用asp实现的代码批量修改程序
- ASP与数据库连接、写入、修改、删除、显示的代码整理
- 正则表达式fan反向引用相关概念总结
- Linux程序设计--12.5.2用互斥量进行同步
- Android如何隐藏app的桌面显示图标
- 288. Unique Word Abbreviation
- let关键字
- Asp.Identity2.1.0的修改
- 工作小问题积累
- 矩阵乘法证明
- Android入门:Activity四种启动模式
- 数据结构实验之求二叉树后序遍历和层次遍历
- 利用注解实现spring基本配置详解
- Mongodb亿级数据量的性能测试
- 使用Webview加载html网页
- iOS中正则表达式的使用