Asp.Net MVC Identity 2.2.1 使用技巧(三)
使用用户管理器之用户注册
用户管理的基本功能模块中已经做好了,我们现在做一些调整。
1、修改用户名注册规则。
上一篇中可选操作已经详解了这里把基本的设置简介下。
打开App_Start/identityConfig.cs ,在public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context) (43行)方法内找manager.UserValidator = new UserValidator<ApplicationUser>(manager)(47行)修改代码如下:
// 配置用户名的验证规则
manager.UserValidator = new UserValidator<ApplicationUser>(manager)
{
AllowOnlyAlphanumericUserNames = true, //是否UserName只能包含字母数字
RequireUniqueEmail = true //是否Email地址必须唯一
};
我这里是考虑了手机用户输入的方便性,所以不使用Email为用户名。我想用qq号做用户名,所以AllowOnlyAlphanumericUserNames选true。
2、修改密码强度。
打开App_Start/identityConfig.cs ,在public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context) (43行)方法内找manager.PasswordValidator = new PasswordValidator(54行)修改如下代码:
// 设置密码规则
manager.PasswordValidator = new PasswordValidator
{
RequiredLength = , //设置密码长度最小为6.
RequireNonLetterOrDigit =false, //是否包含一个非字母或数字字符.
RequireDigit = false, //是否需要一个数字(0-9).
RequireLowercase = false,//是否需要一个小写字母(a-z).
RequireUppercase = false,//是否需要一个大写字母(A-Z).
};
3、打开Controllers目录下的AccountController.cs。
在控制器中找到public async Task<ActionResult> Register(RegisterViewModel model)(150行)方法中的var user = new ApplicationUser { UserName = model.Email, Email = model.Email };(154行)这里两个参数都是绑定的Email。
改为var user = new ApplicationUser { UserName = model.UserName, Email = model.Email };更改后vs会提示下红波浪线(错误),选择纠错为“生成属性”的哪一项。注意:自动生成会是public string UserName { get; internal set; } 必须把internal set改为set,否则后期无法获取到值。
4、修改用户注册的数据模型:修改Models文件夹下AccountViewModels目录下RegisterViewModel.cs模型内的public class RegisterViewModel 中添加 public string UserName { get; set; },好了在上面堆你想要的规则吧。
[Required]
[StringLength(, ErrorMessage = "{0} 必须至少包含 {2} 个字符,最多20个字符。", MinimumLength = )]
[Display(Name = "用户账号")]
[DataType(DataType.Text)]
[RegularExpression("^[a-zA-Z0-9_]{6,20}$", ErrorMessage = "用户名由字母或数字组成。")]
public string UserName { get; set; }
5、在Views文件夹的Account中的register.cshtml文件中(14行)添加“用户账号”代码:
<div class="form-group">
@Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
</div>
</div>
6、修改login,因为改为了用户名注册,如果还用email登陆的话,一定出现错误。
首先在Models文件夹下找AccountViewModels.cs,在模型内找到LoginViewModel类(49行)添加 public string UesrName { get; set; },规则可以复制上面的吧。另外就是要把email模型项去掉或者注释掉,否则你登陆不上去且还不给提示。
7、在Views/Account文件夹中的login.cshtml文件中原来为“email”的地方改为“UserName”。
8、打开Controllers目录下的AccountController.cs,找到 public async Task<ActionResult> Login(LoginViewModel model, string returnUrl) 方法(69行),修改其中的var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false); (78行)修改为var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false); 也就是把提示错误的Email换为UserName。
Asp.Net MVC Identity 2.2.1 使用技巧(三)的更多相关文章
- Asp.Net MVC Identity 2.2.1 使用技巧(二)
之前我们看到了新生成的项目中跟identity有关的有四个文件,这些文件是基础功能,并未开启identity的全部功能.现在我们先启用角色功能. 1.在App_Start文件夹中的IdentityCo ...
- Asp.Net MVC Identity 2.2.1 使用技巧(一)
开发环境:vs2015 UP3 or vs2017RC 项目环境:asp.net 4.6.1 identity版本为:asp.net identity 2.2.1 1.创建项目. 没什么好说 ...
- Asp.Net MVC Identity 2.2.1 使用技巧(八)
一.添加管理链接 在View/Shared/_layout.cshtml,在页面导航上(28行)添加如下代码: @*通过身份验证并确认用户属于Admin角色显示管理菜单*@ @if (Request. ...
- Asp.Net MVC Identity 2.2.1 使用技巧(七)
创建角色管理相关视图 1.添加视图 打开RolesAdminController.cs 将鼠标移动到public ActionResult Index()上 右键>添加视图 系统会弹出 ...
- Asp.Net MVC Identity 2.2.1 使用技巧(六)
使用用户管理器之角色管理 一.建立模型,这里我们其实在之前的技巧(五)已经建好了. 二.建立控制器RolesAdminController 1.在controllers文件夹上点右键>添加> ...
- Asp.Net MVC Identity 2.2.1 使用技巧(五)
创建用户管理相关视图 1.添加视图 打开UsersAdminController.cs 将鼠标移动到public ActionResult Index()上 右键>添加视图 系统会弹出 ...
- Asp.Net MVC Identity 2.2.1 使用技巧(四)
使用用户管理器之用户管理 一.建立模型 1.在Models文件夹上点右键 >添加>类 类的名称自定,我用AdminViewModels命名的. 2.更改模板自建的AdminView ...
- ASP.NET MVC Identity 兩個多個連接字符串問題解決一例
按照ASP.NET MVC Identity建立了一個用戶權限管理模塊,由于還要加自己已有的數據庫,所以建立了一個實體模型,建立了之后,發現登錄不了: 一直顯示“Login in failed for ...
- ASP.NET MVC 3 入门级常用设置、技巧和报错
1.ASP.NET MVC 3 如何去除默认验证 这个默认验证是在web.config配置文件中设置的 <add key="ClientValidationEnabled&quo ...
随机推荐
- Comet:基于 HTTP 长连接的“服务器推”技术(转载)
“服务器推”技术的应用 传统模式的 Web 系统以客户端发出请求.服务器端响应的方式工作.这种方式并不能满足很多现实应用的需求,譬如: 监控系统:后台硬件热插拔.LED.温度.电压发生变化: 即时通信 ...
- 使用原生JavaScript实现对select增加option标签并附加value属性
好久没有写原生的东西了,今天写了一个小项目里面包含着option选项,所以我决定使用原生JavaScript动态生成, 本着互联网分享精神,我将本篇文章分享给大家. html代码(就是一个select ...
- LINQ-let子句、join子句
1.Let子句 let子句用于在LINQ表达式中存储子表达式的计算结果,既let子句创建一个范围变量来存储结果,变量被创建后,不能修改或把其他表达式的结果重新赋值给它.此范围变量可以在后续的LINQ中 ...
- WPF实现动画的几种方式及其小案例
WPF实现动画的方式: 基于计时器的动画 建立一个定时器,然后根据其频率循环调用函数或者一个事件处理函数,在这个函数中可以手工更新目标属性,直到达到最终值,这时可以停止计时器. 案例: 效果图: XA ...
- 面向对象(基础oop)之继承总结
大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开 ...
- html全局属性(收藏)
HTML 属性赋予元素意义和语境. 下面的全局属性可用于任何 HTML 元素. 参考链接:http://www.w3school.com.cn/tags/html_ref_standardattrib ...
- 阿里巴巴的数据池DRUID
使用了阿里巴巴的数据池管理: 监控DB池连接和SQL的执行情况 https://github.com/alibaba/druid/wiki/常见问题 https://www.cnblogs.com ...
- centos 安装cloud foundry CLI
步骤: 1.wget -O /etc/yum.repos.d/cloudfoundry-cli.repo https://packages.cloudfoundry.org/fedora/cloudf ...
- C#学习笔记-模板方法模式
题目:同学摘抄老师给的试卷并给出自己的对应的答案. 实现: static void Main(string[] args) { Console.WriteLine("学生甲抄的试卷:&quo ...
- KDTree(Bzoj2648: SJY摆棋子)
题面 传送门 KDTree 大概就是一个分割\(k\)维空间的数据结构,二叉树 建立:每层选取一维为关键字,把中间的点拿出来,递归左右,有个\(STL\)函数nth_element可以用一下 维护:维 ...