当前位置: 首页 > news >正文

ASP.NET Core的身份认证框架IdentityServer4(6)- 开始

安装和概述

启动一个新的IdentityServer项目有两种基本方法:

  • 从头开始
  • 从Visual Studio中的ASP.NET身份模板开始

如果从头开始,我们提供了一些文档、项目帮助和内存存储支持,所以你从一开始就不必担心持久化。

如果您从ASP.NET Identity开始,我们提供了一种简单的方法来整合。

quickstart为各种常见的身份服务器场景提供了一步一步的指导。 他们从绝对的从基础开始,然后变得更加复杂 , 建议您按顺序进行操作。

每个quickstart都有一个参考解决方案 , 您可以在quickstarts文件夹中的IdentityServer4.Samples repo中找到代码。

基本安装

创建并且启动IdentityServer。

创建一个新的ASP.NET项目

668104-20170908111637913-1481248168.png

然后选择空项目

668104-20170908154133179-2032951875.png

接下来通过nuget添加IdentityServer4的包
668104-20170908154149976-2081480307.png

你也可以通过程序包管理控制台执行以下命令:

Install-Package IdentityServer4

IdentityServer使用通常的模式来配置和添加服务到ASP.NET Core Host

ConfigureServices中,所有必须的服务被配置并且添加到依赖注入系统中。
Configure中,中间件被添加到HTTP管道中。

修改你的Startup.cs

public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddIdentityServer()
            .AddDeveloperSigningCredential();
    }

    public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
    {
        loggerFactory.AddConsole(LogLevel.Debug);
        app.UseDeveloperExceptionPage();

        app.UseIdentityServer();
    }
}

AddIdentityServer方法在依赖注入系统中注册IdentityServer,它还会注册一个基于内存存储的运行时状态,这对于开发场景非常有用,对于生产场景,您需要一个持久化或共享存储,如数据库或缓存。请查看使用EntityFramework Core实现的存储。

AddDeveloperSigningCredential(1.1为AddTemporarySigningCredential)扩展在每次启动时,为令牌签名创建了一个临时密钥。在生成环境需要一个持久化的密钥。详细请点击

修改hosting

默认情况下,Visual Studio使用IIS Express来托管您的Web项目。 这是非常好的,除了你将无法看到实时日志输出到控制台。

IdentityServer广泛使用日志记录,而UI中的“可见”错误消息或返回给客户端是故意模糊的。

建议在控制台主机中运行IdentityServer。 您可以通过在Visual Studio中切换启动配置文件来执行此操作。 您也不需要每次启动IdentityServer时启动浏览器 ,您也可以关闭浏览器:

668104-20170908114252663-1847730080.png

当您切换到self-hosting时,Web服务器端口默认为5000.您可以在上面的启动配置文件对话框中配置,也可以在Program.cs中进行配置,我们在quickstart中为IdentityServer Host使用以下配置:

public static void Main(string[] args)
{
    BuildWebHost(args).Run();
}

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .Build();

建议为IIS Express和自我托管配置相同的端口。 这样,您可以在两者之间进行切换,而无需修改客户端中的任何配置。

做到这一步,你会发现并不能运行。这边文章很基础,只是说明如何建立一个是使用IdentityServer4的项目,第一个可以运行的IdentityServer4项目请看我下篇文章。

所有的Demo都会根据官方的QuickStart项目来,但是官方的QiuckStart都是.net core 1.1的比较老了,我使用的是.net core 2.0,IdentityServer4是用的是目前支持.net core 2.0最新版本,所有Demo都放在了github https://github.com/stulzq/IdentityServer4.Samples ,大家可以给我来个star

相关文章:

  • maven - pom.xml 聚合(父)工程 基本内容演示
  • service
  • 波特率时钟
  • HBase的一些关于CRUD方法
  • 自动化测试基础篇--Selenium单选框(Radio)复选框(CheckBox)
  • 基于图论的立体匹配方法研究----绪论
  • rails migration 增加索引
  • len(),range()函数
  • 长城电脑整体解决方案护航智慧城市安全
  • Java语法基础--运算
  • 问题010:在Java中,什么是常量,什么是变量?
  • 算法(四)--------动态规划问题
  • Mock Server 入门
  • 如何判断c语言的变量类型
  • paper 58 :机器视觉学习笔记(1)——OpenCV配置
  • ----------
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • JavaScript创建对象的四种方式
  • JS实现简单的MVC模式开发小游戏
  • Phpstorm怎样批量删除空行?
  • vue数据传递--我有特殊的实现技巧
  • windows下如何用phpstorm同步测试服务器
  • yii2权限控制rbac之rule详细讲解
  • 复习Javascript专题(四):js中的深浅拷贝
  • 京东美团研发面经
  • 聊聊redis的数据结构的应用
  • 前端攻城师
  • 日剧·日综资源集合(建议收藏)
  • 实战|智能家居行业移动应用性能分析
  • 学习Vue.js的五个小例子
  • 追踪解析 FutureTask 源码
  • linux 淘宝开源监控工具tsar
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ###C语言程序设计-----C语言学习(6)#
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (第27天)Oracle 数据泵转换分区表
  • (二十三)Flask之高频面试点
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (四)linux文件内容查看
  • (转)JAVA中的堆栈
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .net操作Excel出错解决
  • @private @protected @public
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [20171106]配置客户端连接注意.txt
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [Angular 基础] - 表单:响应式表单
  • [BZOJ 3531][Sdoi2014]旅行(树链剖分+线段树)
  • [C#]winform部署yolov5-onnx模型