码迷,mamicode.com
首页 > Web开发 > 详细

.net core 1.0 中的asp.net identity 基本使用(一)

时间:2016-07-07 22:30:48      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

1、修改密码强度:打开Startup.cs,在public class Startup{}内找public void ConfigureServices(IServiceCollection services){}修改services.AddIdentity<ApplicationUser, IdentityRole>()为如下代码:

services.AddIdentity<ApplicationUser, IdentityRole>(o => {
                // 配置身份选项
                o.Password.RequireDigit = false;//是否需要数字(0-9).
                o.Password.RequireLowercase = false;//是否需要小写字母(a-z).
                o.Password.RequireUppercase = false;//是否需要大写字母(A-Z).
                o.Password.RequireNonAlphanumeric = false;//是否包含非字母或数字字符。
                o.Password.RequiredLength = 6;//设置密码长度最小为6
            })

 

2、打开Controllers目录下的AccountController.cs

找到 public async Task<IActionResult> Register(RegisterViewModel model, string returnUrl = null) 这下面的var user = new ApplicationUser { UserName = model.Email, Email = model.Email };这里两个参数都是绑定的email。

改为var user = new ApplicationUser { UserName = model.UserName, Email = model.Email };

更改后vs会提示下红波浪线(错误),选择纠错为“生成属性”的哪一项。注意:自动生成会是public string UserName { get; internal set; } 必须把internal set改为set,否则后期无法获取到值。

  

3、修改用户注册的数据模型:修改Models文件夹下AccountViewModels目录下RegisterViewModel.cs模型内的public class RegisterViewModel 中添加   public string UserName { get; set; },好了在上面堆你想要的规则吧。

[Required]
        [StringLength(20, ErrorMessage = "{0} 必须至少包含 {2} 个字符,最多20个字符。", MinimumLength = 6)]
        [Display(Name = "用户账号")]
        [DataType(DataType.Text)]
        [RegularExpression("^[a-zA-Z0-9_]{6,20}$", ErrorMessage = "用户名由字母或数字组成。")]
        public string UserName { get; set; }

 

4、在Views文件夹的Account中的register.cshtml文件中添加“用户账号”代码:

1 <div class="form-group">
2         <label asp-for="UserName" class="col-md-2 control-label"></label>
3         <div class="col-md-10">
4             <input asp-for="UserName" class="form-control" />
5             <span asp-validation-for="UserName" class="text-danger"></span>
6         </div>
7     </div>   

大家可以看下,这里的代码和之前的已经不一样了,随着TagHelper的更新,这里的代码也变为 asp-for了。TagHelper的资料请参阅这里

 

5、修改login,因为改为了用户名注册,如果还用email登陆的话,一定出现错误。

首先在ViewModels文件夹下找LoginViewModel.cs,在模型内添加 public string UesrName { get; set; },好了在上面堆你想要的规则吧。

1 [Required]
2 [StringLength(20, ErrorMessage = "{0} 必须至少包含 {2} 个字符,最多20个字符。", MinimumLength = 6)]
3 [Display(Name = "用户账号")]
4 [DataType(DataType.Text)]
5 [RegularExpression("^[a-zA-Z0-9_]{6,20}$", ErrorMessage ="用户名由字母或数字组成。")]
6 public string UserName { get; set; }

接着把email模型项去掉或者注释掉,否则你登陆不上去且还不给提示。

 

6、在Views文件夹中的login.cshtml文件中原来为“email”的地方改为“UserName”。

7、打开AccountController.cs文件,找到  public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null) 这个方法

把  var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);

改为var result = await _signInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, lockoutOnFailure: false);

现在,各位可以试试了。

.net core 1.0 中的asp.net identity 基本使用(一)

标签:

原文地址:http://www.cnblogs.com/chonghanyu/p/5639598.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!