天天看点

Identity Server 4 从入门到落地(八)—— .Net Framework 客户端

为.Net Framework 项目创建Identity Server 4客户端。

前面的部分:

Identity Server 4 从入门到落地(一)—— 从IdentityServer4.Admin开始

Identity Server 4 从入门到落地(二)—— 理解授权码模式

Identity Server 4 从入门到落地(三)—— 创建Web客户端

Identity Server 4 从入门到落地(四)—— 创建Web Api

Identity Server 4 从入门到落地(五)—— 使用Ajax 访问 Web Api

Identity Server 4 从入门到落地(六)—— 简单的单页面客户端

Identity Server 4 从入门到落地(七)—— 控制台客户端

认证服务和管理的github地址: https://github.com/zhenl/IDS4Admin

客户端及web api示例代码的github地址:https://github.com/zhenl/IDS4ClientDemo

在面向企业的信息化项目中,很少有项目是从一张白纸开始,或多或少都要面临与现有项目集成或者遗留项目升级与整合的问题,认证服务的使用更是如此,各种现有系统的单点登录就是认证服务常用的场景之一,因此,如果遗留系统无法使用,那么这个技术在项目中就无法落地使用。现实中仍然存在大量在用的基于.Net Framework的项目,我们需要为这些项目制订与认证服务集成的方案。我们通过创建一个.Net Framework 4.5.2的简单应用来验证方案的可行性,主要使用的技术是采用Owin实现OpenIdConnect的客户端,构建过程如下。

首先,在我们现有的测试解决方案中增加一个Asp.Net MVC项目,采用.Net Framework 4.5.2框架,项目名称为IDS4ClientNet4。

然后,在项目中引入如下程序包:

IdentityModel

Microsoft.Owin

Microsoft.Owin.Host.SystemWeb

接下来,在项目中增加Startup.cs文件,代码如下:

注意,这里使用的ResponseType是id_token token,不是code。

修改HomeController,将About设置为[Authorize],增加访问WebApi和Logout功能:

About的视图About.cshtml如下:

视图WebApi.cshtml如下:

下面需要使用认证管理应用增加一个客户端,名称为net4mvcclient,Client Secret为secret3。需要注意的是,这个客户端需要设置为隐式模式(Implicit)

Identity Server 4 从入门到落地(八)—— .Net Framework 客户端

设置完成后,将解决方案的启动项目设置为多项目启动,同时启动客户端和Web Api:

Identity Server 4 从入门到落地(八)—— .Net Framework 客户端

启动项目,访问关于页面,会跳转到认证服务的登录页面,登录完成后,会显示用户的详细信息。访问WebApi页面,可以获取Api返回的数据:

Identity Server 4 从入门到落地(八)—— .Net Framework 客户端

通过这个项目我们验证了.Net Framework与认证服务集成的方案。

本文来自博客园,作者:寻找无名的特质,转载请注明原文链接:https://www.cnblogs.com/zhenl/p/15654284.html