asp.net5中,关于用户的认证和授权提供了非常丰富的功能,如果结合ef7的话,可以自动生成相关的数据库表,调用也很方便。

但是,要理解这么一大堆关于认证授权的类,或者想按照自己项目的特定要求对认证授权进行定制,确实很头疼。为了解决这个问题,需要从根本上理解认证和授权的机制,不过这不是个简单的事情,一些概念也比较抽象,为了方便理解,这里我用最简单的实例来演示如何进行认证和授权,而且是在不使用ef,不使用数据库的情况下,单纯的演示认证和授权本身。

要进行认证,首先你要有用户,这里我们建立一个用户类如下:

  /// <summary>
/// 用户
/// </summary>
public class HDUser
{ /// <summary>
/// 用户ID
/// </summary>
public string Id { get; set; } /// <summary>
/// 登录名
/// </summary>
public string UserName { get; set; } /// <summary>
/// 规范用户名
/// </summary>
public string NormalizedUserName { get; set; } /// <summary>
/// 密码
/// </summary>
public string PassWord { get; set; } /// <summary>
/// 哈希编码后的密码
/// </summary>
public string PasswordHash { get; set; } /// <summary>
/// 用户具有的角色
/// </summary>
public virtual ICollection<HDUserRole> Roles { get; private set; } = new List<HDUserRole>(); }

这里,HDUser类的字段大部分比较容易理解,就那个NormalizedUserName难理解一些,可以简单认为是UserName的大写形式好了。

然后是角色类:

 /// <summary>
/// 角色
/// </summary>
public class HDRole
{
/// <summary>
/// 角色ID
/// </summary>
public string Id { get; set; } /// <summary>
/// 角色名称
/// </summary>
public string Name { get; set; } }

有了用户和角色,要建立起用户和角色的关系,就需要用户角色类:

  /// <summary>
/// 用户角色对应关系
/// </summary>
public class HDUserRole
{
/// <summary>
/// 用户ID
/// </summary>
public virtual string UserId { get; set; } /// <summary>
///角色ID
/// </summary>
public virtual string RoleId { get; set; }
}

这样,最基础的三个类我们就都建立起来了。

下一篇:

最简实例演示asp.net5中用户认证和授权(2)

最简实例演示asp.net5中用户认证和授权(1)的更多相关文章

  1. 最简实例演示asp.net5中用户认证和授权(4)

    上篇: 最简实例演示asp.net5中用户认证和授权(3) 上面我们把自定义认证和授权的相关的最小基础类和要实现的接口都实现了,下面就是如何来进行认证和授权的配置. 首先我们要告诉系统,我们的用户和角 ...

  2. 最简实例演示asp.net5中用户认证和授权(3)

    上接: 最简实例演示asp.net5中用户认证和授权(2) 在实现了角色的各种管理接口后,下一步就是实现对用户的管理,对用户管理的接口相对多一些,必须要实现的有如下三个: 1 public inter ...

  3. 最简实例演示asp.net5中用户认证和授权(2)

    上接最简实例演示asp.net5中用户认证和授权(1) 基础类建立好后,下一步就要创建对基础类进行操作的类了,也就是实现基础类的增删改查(听起来不太高大上),当然,为了使用asp.net5的认证机制, ...

  4. [转]asp.net5中使用NLog进行日志记录

    本文转自:http://www.cnblogs.com/sguozeng/articles/4861303.html asp.net5中使用NLog进行日志记录 asp.net5中提供了性能强大的日志 ...

  5. asp.net5中使用NLog进行日志记录

    asp.net5中提供了性能强大的日志框架,本身也提供了几种日志记录方法,比如记录到控制台或者事件中等,但是,对大部分程序员来说,更喜欢使用类似log4net或者Nlog这种日志记录方式,灵活而强大. ...

  6. 【翻译】asp.net core2.1认证和授权解密

    asp.net core2.1认证和授权解密 本篇文章翻译自:https://digitalmccullough.com/posts/aspnetcore-auth-system-demystifie ...

  7. asp.net core2.1认证和授权解密

    来源:https://www.cnblogs.com/pangjianxin/p/9372562.html asp.net core2.1认证和授权解密 本篇文章翻译自:https://digital ...

  8. springSecurity + jwt + redis 前后端分离用户认证和授权

    记录一下使用springSecurity搭建用户认证和授权的代码... 技术栈使用springSecurity + redis + JWT + mybatisPlus 部分代码来自:https://b ...

  9. ASP.NET5 中静态文件的各种使用方式

    所谓静态文件,包含HTML文件,css文件.图片文件和js文件等,他们是服务器直接读取到客户端的一些资源,在这篇文章中,我们将解释关于ASP.NET5和静态文件的一些内容. 服务端的静态文件 默认情况 ...

随机推荐

  1. Ruby 局部变量做block参数

    Ruby中使用yield语句调用block时可以带有参数,参数值见传送个相关联的block.如果传给block的参数是已经存在的局部变量,那么这些变量即为block的参数,他们的值可能会因block的 ...

  2. ng2 样式控制之style绑定和class绑定

  3. 修改sharepoint列表样式

    1.将sharepoint 的样式修改为阴影 2.用designer打开列表的AllItems.aspx文件,将下面的样式拷贝到里面     <style type="text/css ...

  4. 删除eclipse Maven 进程 导致eclipse的workspace 启动不了

    异常描述: An internal error occurred during: "reload maven project". java.lang.NullPointerExce ...

  5. 伪分布模式 hive查询

    [root@node1 ~]# lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian ...

  6. Unity编辑器的扩展:IMGUI

    IMGUI 介绍 所有关于 Editor 的相关 UI,包括 Inspector.Hierarchy.Window.Game 视图上动态创建的那些半透明 UI.还有 Scene 视图上可添加的辅助显示 ...

  7. [原创]Devexpress XtraReports 系列索引

    该系列已经完结...以后如果有高级功能,会再开一个新的系列,该系列是比较基础的报表应用..谢谢大家一直的支持. [原创]Devexpress XtraReports 系列 1 创建静态报表 Demo地 ...

  8. [原创]SQL表值函数:把用逗号分隔的字符串转换成表格数据

      我们日常开发过程中,非常常见的一种需求,把某一个用逗号或者/或者其他符号作为间隔的字符串分隔成一张表数据. 在前面我们介绍了 [原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式,当然按照这 ...

  9. Learning Python 007 基本语句

    Python 基本语句 if - 条件判断 没有什么好说的,直接上代码: age = 3 if age >= 18: print('adult') elif age >= 6: print ...

  10. error C2039: “addTextureMesh”: 不是“pcl::visualization::PCLVisualizer”的成员

    error C2039: "addTextureMesh": 不是"pcl::visualization::PCLVisualizer"的成员 PCL 1.6 ...