IdentityServer-Setup and Overview
设置和概述
有两种方式创建一个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的更多相关文章
- openstack setup demo Overview
Overview openstack是一套开源的云计算部署平台,通过一系列service提供IAAS.每一个service都提供API.具体的service列表如下: dashboard Horizo ...
- [转]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 ...
- 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 ...
- FIM 2010: Kerberos Authentication Setup
The goal of this article is to provide some background information regarding the Kerberos related co ...
- 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 ...
- Overview & Change Log
Overview & Change Log Nova Framework is a PHP 5.5+ MVC Framework. It's designed to be lightweigh ...
- 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 ...
- WSL(Windows Subsystem for Linux)--Pico Process Overview
[转载] Windows Subsystem for Linux -- Pico Process Overview Overview This post discusses pico processe ...
- 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 ...
- BuildTools Overview
SCons Pros: Based on a full-fledged programming language, Python. This means you can make the build ...
随机推荐
- Atcoder Regular-074 Writeup
C - Chocolate Bar 题面 There is a bar of chocolate with a height of H blocks and a width of W blocks. ...
- FPGA之初认识
什么是FPGA FPGA(Field-Programmable Gate Array),即现场可编程门阵列 .看到编程两个字码农就笑了,不就是编程嘛,那可是我们的强项 .且慢,此编程非彼编程 .一定要 ...
- 20171126-handler消息机制理解
1.handler消息机制的理解 http://www.jianshu.com/p/8343a39b8a2c?s_q_s_h_a_r_e_1MTAzNTIwODAxNTExNTg5NTkwMzE0Nz ...
- (转)如何最佳地使用memcached?
转自:http://os.51cto.com/art/201205/335034_all.htm Memcached是由DangaInteractive开发的,高性能的,分布式的内存对象缓存系统,如何 ...
- POJ3181--Dollar Dayz(动态规划)
Farmer John goes to Dollar Days at The Cow Store and discovers an unlimited number of tools on sale. ...
- java基础-day27
第04天 java基础加强 今日内容介绍 u Xml的综合案例 u 注解 u 类的加载 u 动态代理 第1章 注解 1.1 注解概述 l 什么是注解:Annotation注解,是一种代码级别的 ...
- C++插件架构浅谈与初步实现
一.插件架构初步介绍 想到写本博客,也没想到更好的名字,目前就先命这个名吧.说到插件架构,或许大部分IT从业者都听过或者某些牛人也自己实现过稳定高效的插件框架.目前有很多软件以及库都是基于插件架构,例 ...
- codeforces820B Mister B and Angle in Polygon 2017-06-28 09:42 123人阅读 评论(0) 收藏
B. Mister B and Angle in Polygon time limit per test 2 seconds memory limit per test 256 megabytes i ...
- 最大流Dinic算法
嘿嘿嘿,时隔不久又见到了DInic,再次回顾一下吧 不过这次我倒是不想深究,而是想多做一些题,因为这几次比赛下来,算法不是重点,重点是题目如何转化,算法如何应用,这也是比赛为什么让你带着板子的原因吧, ...
- shell wc -l
shell 命令之 wc -l 给出一个比较常用的命令: cat * | wc -l 查询当前文件夹下的文件的总行数. 原理就是统计了文件中换行符的数量.