设置和概述

有两种方式创建一个IdentityServer 项目:

  • 从零开始
  • 使用Visual Studio的ASP.NET Identity模板

如果是从零开始,我们提供一序列的帮助及内存存储,所以一开始不需要担心持久化问题。

如果是从ASP.NET Identity开始, 我们提供很方便的集成.

快速入门为各种identityserver使用场景提供一步一步的说明. 从最基本的到复杂的场景 - 建议安装顺序来学习.

每个快速入门都有一个对应的解决方案 - 可以在 IdentityServer4.Samples  的 quickstarts 文件夹内找到对应的源码.

基本设置

截图显示的是使用Visual Studio - 但这不是必须的.

创建一个IdentityServer快速入门

新建一个ASP.NET Core 项目.

选择 “Empty Web” 选项.

注意

IdentityServer 目前只支持 ASP.NET Core 1.1.

下一步, 添加 IdentityServer4 nuget 包:

也可以通过包管理控制台使用以下命令来添加依赖项:

“Install-Package IdentityServer4”

IdentityServer 使用通用的格式对ASP.NET Core host配置和添加服务. 在ConfigureServices 中将必要的服务配置和添加到依赖注入系统. 在 Configure 中将中间件添加到HTTP 管道.

修改 Startup.cs 文件:

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

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

        app.UseIdentityServer();
    }
}

AddIdentityServer 在 DI中注册IdentityServer 服务. 同时注册了一个运行时内存存储. 这对应开发场景是很有用的. 在实际生产场景中需要一个类似数据库的可持久化机制. 更多信息参考 EntityFramework 快速入门.

AddTemporarySigningCredential 扩展方法为每次启动创建一个临时的密钥. 同样是应用于开发, 需要在生产场景中替换成可持久化的. 更多信息参考 cryptography docs .

注意

IdentityServer 现在还不能启动. 事实上,如果启动, 会抛出服务缺失的异常. 我们将在下面的快速入门中添加这些服务.

修改hosting

Visual Studio 默认使用 IIS Express 来承载 web 项目. 这当然没问题, 但这样就不能再控制台看到实时日志输出了.

不论是针对UI的“可见“错误消息还是返回给客户的模糊处理消息.IdentityServer 对日志进行了很方便的扩展.

推荐使用控制台来承载 IdentityServer . 可以在 Visual Studio 切换配置. 也可以不用每次运行 IdentityServer都打开浏览器 - 同样可以关闭:

当切换到自动宿主, 服务器默认端口是5000. 可以通过上图配置, 也可以在 Program.cs 中编码 -  我们在快速入门中使用以下IdentityServer 宿主配置:

public class Program
{
    public static void Main(string[] args)
    {
        Console.Title = "IdentityServer";

        var host = new WebHostBuilder()
            .UseKestrel()
            .UseUrls("http://localhost:5000")
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

        host.Run();
    }
}

注意

建议在IIS Express 和self-hosting中使用相同的端口配置. 这样在两种方式切换的时候不需要改动客户端配置.

怎么运行快速入门

上面提到的每个快速入门都有一个对应的解决方案 - 可以在IdentityServer4.Samples 的quickstarts 文件夹中找到.

最方便的方法是 右键选择解决方案属性并选择“启动项目”.设置启动项目为 “当前选定内容”:

先启动IdentityServer, 然后启动 API, 最后是 client. 只有在需要调试的时候启动F5调试. 其他情况使用 Ctrl+F5 是运行项目的最佳方式.

IdentityServer-Setup and Overview的更多相关文章

  1. openstack setup demo Overview

    Overview openstack是一套开源的云计算部署平台,通过一系列service提供IAAS.每一个service都提供API.具体的service列表如下: dashboard Horizo ...

  2. [转]Using MVC 6 And AngularJS 2 With .NET Core

    本文转自:http://www.c-sharpcorner.com/article/using-mvc-6-and-angularjs-2-with-net-core/ CoreMVCAngular2 ...

  3. Overview and Evaluation of Bluetooth Low Energy: An Emerging Low-Power Wireless Technology

    转自:http://www.mdpi.com/1424-8220/12/9/11734/htm Sensors 2012, 12(9), 11734-11753; doi:10.3390/s12091 ...

  4. FIM 2010: Kerberos Authentication Setup

    The goal of this article is to provide some background information regarding the Kerberos related co ...

  5. How to Setup Replicated LevelDB Persistence in Apache ActiveMQ 5.9--转载

    原文地址:https://simplesassim.wordpress.com/2013/11/03/how-to-setup-replicated-leveldb-persistence-in-ap ...

  6. Overview & Change Log

    Overview & Change Log Nova Framework is a PHP 5.5+ MVC Framework. It's designed to be lightweigh ...

  7. HOWTO: Setup XCode 6.1 to work with OpenCV3 libraries

    HOWTO: Setup XCode 6.1 to work with OpenCV3 libraries Overview This post demonstrates how to setup y ...

  8. WSL(Windows Subsystem for Linux)--Pico Process Overview

    [转载] Windows Subsystem for Linux -- Pico Process Overview Overview This post discusses pico processe ...

  9. Overview of .rdp file settings

    On this page you will find an overview of most of the available .rdp file settings which can be used ...

  10. BuildTools Overview

    SCons Pros: Based on a full-fledged programming language, Python. This means you can make the build ...

随机推荐

  1. x86_64汇编调试程序初步

    寄存器说明: rdi 存第1个参数(值或地址) rsi 存第2个参数 rdx 存第3个参数 rcx 存第4个参数 r8 存第5个参数 r9 存第6个参数 rax 第1个返回值 rdx 第2个返回值 r ...

  2. MapServer和GeoServer对比

    https://blog.csdn.net/theonegis/article/details/45823099

  3. linux 常用命令(个人记录)

    Linux专家的秘诀:思考-实践-在思考-再实践...linux常用命令:root 管理员用户startx 进入shutdown -h now 立刻关机shutdown -r now 现在重新启动计算 ...

  4. java基础-day9

    第09天 java集合 今日内容介绍 u 对象数组 u 集合类之ArrayList u 学生管理系统案例 第1章   对象数组 1.1      对象数组概述 A:基本类型的数组:存储的元素为基本类型 ...

  5. AngularJS 控制器 Live Dom

    控制器的作用是在$scope对象上创建属性和方法,控制器的作用域是$scope,所以作用域是针对控制器来讲的.另外,控制器实例不是单例,每次都会重新实例化,不像服务是单例的. 其是注册在模块上的,如 ...

  6. 第三天:JavaScript的DOM对象和DOM操作HTML

    1. DOM操作HTML 1)注意:绝对不要在文档加载完成之后使用docment.write().这样会覆盖原来的文档 <body> <p>hello</p> &l ...

  7. 笑话库存加网址http://www.jokeji.cn/list18_11.htm

    19.富二代王晓伟成绩很差,老爸想给他找个家教老爸:“儿子,想找什么样的家教啊?”儿子:“要漂亮的,女的,衣服不能太保守,花样要多!”老爸:“儿子,你TM指的是岛国的苍老师吗?”@呦呦ta爹 20.哥 ...

  8. 4.动态HTML处理和机器图像识别

    Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上, ...

  9. 1.html基础

    认识html 1.1 Hyper   text  markup   language 超文本标记语言. 超文本:超链接.(实现页面跳转) Html结构标准 < ! doctype html> ...

  10. 探索基于.NET下实现一句话木马之ashx篇

    0x01 前言 在渗透测试的时候各种PHP版的一句话木马已经琳琅满目,而.NET平台下的一句话木马则百年不变,最常见的当属下面这句 笔者感觉有必要挖坑一下.NET平台里的一句话木马,经过一番摸索填坑终 ...