ASP.NET Core分布式项目实战(运行Consent Page)--学习笔记

任务21:运行Consent Page

修改 Config.cs 中的 RequireConsent 为 true,这样登录的时候就会跳转到 Consent 页面

修改 ConsentController 的 Index 为异步

[HttpGet]
public async Task<IActionResult> Index(string returnUrl)
{var model = await BuildConsentViewModel(returnUrl);if (model == null){}return View(model);
}

构造函数改为 public

public ConsentController

Index.cshtml 添加用户信息和 icon

@if (Model.IdentityScopes.Any())
{<div><span class="glyphicon glyphicon-user"></span>用户信息</div><ul class="list-group">@foreach (var scope in Model.IdentityScopes){@Html.Partial("_ScopeListitem", scope)}</ul>
}

_ScopeListitem.cshtml

@using mvcCookieAuthSample.ViewModels;
@model ScopeViewModel<li><label><input type="checkbox"name="ScopesConsented"id="scopes_@Model.Name"value="@Model.Name"checked="@Model.Checked"disabled="@Model.Required"/><strong>@Model.Name</strong>@if (Model.Emphasize){<span class="glyphicon glyphicon-exclamation-sign"></span>}</label>@if (string.IsNullOrEmpty(Model.Description)){<div><label for="scopes_@Model.Name">@Model.Description</label></div>}
</li>

启动服务端 mvcCookieAuthSample,再启动客户端 MvcClient,登录之后跳转到 Consent 页面

如果界面出现乱码,可将文件 Index.cshtml 与 _ScopeListitem.cshtml 另存为 UTF-8 编码

在 Config 的 GetClients 中补充客户端信息

public static IEnumerable<Client> GetClients()
{return new List<Client>{new Client(){ClientId = "client",ClientName = "Client",ClientUri = "http://localhost:5001",LogoUri = "https://encrypted-tbn0.gstatic.com/images?q=tbn%3AANd9GcQe9J82GNBVtbc0Co3IV63l4mQgRlMdn4lQI7cDmICHjA4VmFuv&usqp=CAU",AllowRememberConsent = true,AllowedGrantTypes = GrantTypes.Implicit,// 隐式模式ClientSecrets ={new Secret("secret".Sha256())},RequireConsent = true,RedirectUris = { "http://localhost:5001/signin-oidc" },PostLogoutRedirectUris = { "http://localhost:5001/signout-callback-oidc" },//AllowedScopes = {"api"},AllowedScopes ={IdentityServerConstants.StandardScopes.Profile,IdentityServerConstants.StandardScopes.OpenId,IdentityServerConstants.StandardScopes.Email,}}};
}

修改 Index.cshtml,不然看不到图片

@if (!string.IsNullOrWhiteSpace(Model.ClientLogoUrl))

再次启动程序,显示如下:

课程链接

http://video.jessetalk.cn/course/explore

相关文章

ASP.NET Core分布式项目实战(Consent Controller Get请求逻辑实现)--学习笔记

ASP.NET Core分布式项目实战(Consent视图制作)--学习笔记

ASP.NET Core分布式项目实战(Identity Server 4回顾,Consent 实现思路介绍)--学习笔记

ASP.NET Core分布式项目实战(oauth2 + oidc 实现 client部分)--学习笔记

ASP.NET Core分布式项目实战(oauth2 + oidc 实现 server部分)--学习笔记

ASP.NET Core分布式项目实战(oauth2与open id connect 对比)--学习笔记

ASP.NET Core分布式项目实战(详解oauth2授权码流程)--学习笔记

ASP.NET Core分布式项目实战(oauth密码模式identity server4实现)--学习笔记

ASP.NET&nbsp;Core分布式项目实战(第三方ClientCredential模式调用)--学习笔记

ASP.NET Core分布式项目实战(客户端集成IdentityServer)--学习笔记

ASP.NET Core分布式项目实战(业务介绍,架构设计,oAuth2,IdentityServer4)--学习笔记

ASP.NET Core分布式项目实战(课程介绍,MVP,瀑布与敏捷)--学习笔记

ASP.NET Core快速入门 -- 学习笔记汇总

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309919.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HDU - 2444——The Accomodation of Students(判断二分图,二分图最大匹配)

题意&#xff1a; 题意&#xff1a; 有n个人&#xff0c;m对人相互认识&#xff1b; 问能否分成两个组&#xff0c;组内任意两个人之间不认识&#xff1b; 若不能&#xff0c;则输出No&#xff1b; 若能&#xff0c;则相互认识的两个人一间房&#xff0c;求最多需要几间房&…

php代码时间控制,PHP 网页过期时间的控制代码

当然,前提要先打开CDN中一个功能reload_into_ims on.这样用户发送过来no-cache也不怕了.因为这样会给给no-cache转成If-Modified-Since .所以我们写程序主要是对If-Modified-Since控制就好了.记的,缓存系统架构中计中最好是后端来控制,所以最好的方法是程序来管理过期. 呵,我只…

[C++11]指针空值类型nullptr

代码如下: #include <iostream> using namespace std;void func(char *p) {cout << "void func(char *p)" << endl; }void func(int p) {cout << "void func(int p)" << endl; }int main() {func(10);func(NULL);return 0;…

一些有关使用EF的错误用法展开的思考

前言这是一个对话性的讨论&#xff0c;它讨论了一个严重的问题趋势&#xff0c;我发现在由初级团队到架构师团队的各种规模的组织中&#xff0c;EntityFramework的利用率都很高。这不是一个如何做的问题,这也不适合新手。如果有什么能激发您的想法&#xff0c;或者您对我提到的…

php字符串类型详解,php数字类型之字符串类型详解

在php中可字符一个字符串我们常用的就是单引号和双引号以前后面的语法结构heredoc和nowdoc定义&#xff0c;这两个要在php5.3.0以上版本。PHP中一个字符串可以通过下面的4种方式来定义&#xff1a;单引号双引号heredoc 语法结构nowdoc 语法结构 (自PHP 5.3.0以后)单引号定义一个…

Round Numbers POJ - 3252(数位dp+判断前导零)

题意 求二进制表示中0的个数大于1的数的个数。 题目 The cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, Paper, Stone’ (also known as ‘Rock, Paper, Scissors’, ‘Ro, Sham, Bo’, and a host of other names) in order to mak…

[C++11]常量表达式函数

constexpr修饰函数。 普通函数/类成员函数。 1.函数必须要有返回值&#xff0c;并且return返回的表达式必须是常量表达式。 代码如下: #include <iostream> using namespace std;//error 不是常量表达式函数 constexpr void func1() {int a 200;cout << a &l…

Magicodes.IE Csv导入导出

说明本章主要说明如何使用Magicodes.IE.Csv进行Csv导入导出.主要步骤1.安装包Magicodes.IE.CsvInstall-Package Magicodes.IE.Csv2.使用Magicodes.IE.Csv导出Csv通过如下代码片段我们将导出的内容通过相应的特性做出相应的处理.ExporterHeaderAttributeDisplayName&#xff1a;…

ajax获取php的数组,使用AJAX请求获取数组并将其传递到php数组中 - javascript

我正在为下一个问题苦苦挣扎&#xff1a;我有一个ajax请求&#xff0c;该请求将变量传递给PHP文件。 PHP处理该变量并返回一个数组。我需要取回该数组&#xff0c;所以我使用了AJAX成功回调函数&#xff0c;但是我只能打印出数组&#xff0c;仅此而已。我想使用该数组。$.ajax(…

D-query SPOJ - DQUERY(主席树求区间中不同的数的个数)

题意 给出n个数&#xff0c;m个询问&#xff0c;每个询问给出一个区间&#xff0c;需要回答这个区间中不同的数的个数 题目 {assign var“code” value“DQUERY”} {if KaTeX parse error: Expected EOF, got } at position 8: par""}̲ {assign varpa…locale} {…

微软 Build 2020开发者大会发来一张英雄帖,邀您速来赴约!

&#xff08;本文阅读时间&#xff1a;2 分钟&#xff09;微软 Build 2020开发者大会将于北京时间5 月 19 日晚上 23:00正式开启。大会将以Teams Live Event的形式面向全球开发者免费注册&#xff0c;并增设中文专家面对面&技术专场&#xff0c;方便开发者从48小时的连续技…

[C++11]不允许使用auto的四个场景

不允许使用auto的四个场景&#xff1a; 1.不能作为函数参数使用&#xff0c;因为只有在函数调用的时候才会给函数参数传递实参&#xff0c;auto要求必须要给修饰的变量赋值&#xff0c;因此二者矛盾。 代码如下: //error int func(auto a, auto b) {cout << a <<…

Network UVA - 315(Tarjan+连通性问题:求割点)

题意&#xff1a; 存在n个电话公司的网络连接站点&#xff0c;每个站点之间相互连通&#xff0c;是一个连通图&#xff0c;问&#xff0c;如果去掉一个站点&#xff0c;能够将整个网络体系变得不再连通&#xff0c;那么这样的点有几个&#xff0c;即求它的割点个数。 题目&am…

linux 进程内存开销,linux下查看最消耗CPU、内存的进程

1.CPU占用最多的前10个进程&#xff1a;ps auxw|head -1;ps auxw|sort -rn -k3|head -102.内存消耗最多的前10个进程ps auxw|head -1;ps auxw|sort -rn -k4|head -103.虚拟内存使用最多的前10个进程ps auxw|head -1;ps auxw|sort -rn -k5|head -104.也可以试试ps auxw --sortrs…

[C++11]自动类型推导auto

1.auto C11中&#xff0c;auto并不代表一种实际的数据类型&#xff0c;只是一个类型声明的"占位符"&#xff0c;auto并不是万能的在任意场景下都能够推导出变量的实际类型&#xff0c;使用auto声明的变量必须要进行初始化&#xff0c;以让编译器推导出它的实际类型&…

[最全操作指南] 在线六个项目全部迁移Linux

&#xff08;书山有路勤为径&#xff0c;学海无涯苦作舟&#xff09;开源也两年了&#xff0c;没想到自己在宣传.NetCore全栈的时候&#xff0c;也慢慢的做出了几个产品&#xff0c;毕竟也是一行一行的敲出来的&#xff0c;也是一天一夜的改出来的&#xff0c;希望每个人都能在…

操作系统习题——第一章

操作系统习题——第一章 1&#xff0e;设计现代OS的主要目标是什么&#xff1f; 答&#xff1a;&#xff08;1&#xff09;有效性 &#xff08; 2&#xff09;方便性 &#xff08; 3&#xff09;可扩充性 &#xff08; 4&#xff09;开放性 2&#xff0e; OS 的作用可表现在…

linux把svs文件分割,freeebsd,pkg_add,svsup,make改服务器的设定

第一大部分&#xff1a;几个服务器的设定pkg_add默认下载的服务器在哪改。在/etc/csh.cshrc加上setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports/packages/All/如果是用PACKAGEROOT,则目录必须符合官方的规定cvsup默认的服务器cvsup -L 2 -h cvsup.freebsd.org /u…

[C++11]推荐使用auto的场景

推荐使用auto的场景&#xff1a; 1.用于STL的容器遍历。 代码如下: #include <string>#include <iostream> #include <map> using namespace std;int main() {map<int, string>mp;mp.insert(make_pair(1, "Tom"));mp.insert(make_pair(2,…

【壹刊】Azure AD 保护的 ASP.NET Core Web API (下)

一&#xff0c;引言上一节讲到如何在我们的项目中集成Azure AD 保护我们的API资源&#xff0c;以及在项目中集成Swagger&#xff0c;并且如何把Swagger作为一个客户端进行认证和授权去访问我们的WebApi资源的&#xff1f;本节就接着讲如何在我们的项目中集成 Azure AD 保护我们…