日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET Core IdentityServer4实战 第六章-Consent授权页

發布時間:2023/12/4 asp.net 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET Core IdentityServer4实战 第六章-Consent授权页 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  在identityServer4中登陸頁面只要是成功了,就會注冊一個Cookie在服務器資源上,像現在大部分的網站第三方授權,都是經過一個頁面,然后選需要的功能,IdentityServer4也給我們提供了,只要你登陸成功,就會跳轉到Consent/Index(Get)中,所以我們只要在其中做手腳就好了。

  在編寫代碼之前我們要知道IdentityServer的三個接口,?IClientStore?是存放客戶端信息的,?IResourceStore?是存放資源API信息的,這兩個接口都是在IdentityServer4的Stores的命名空間下,還有一個接口是?IIdentityServerInteractionService?用于與IdentityServer通信的服務,主要涉及用戶交互。它可以從依賴注入系統獲得,通常作為構造函數參數注入到IdentityServer的用戶界面的MVC控制器中。

  下面我們創建一個Consent控制器在認證服務器上,名為?ConsentController?,在其中我們需要將這三個接口通過構造函數構造進來。

在控制器中,因為登陸成功是從Account控制器調過來的,那個時候還帶著ReturnUrl這個而參數,我們在這個控制器中也需要ReturnUrl,所以在Get方法中寫上該參數,要不然跳轉不過來的。

其中調用了?BuildConsentViewModel?方法用于返回一個consent對象,其中我們使用?_identityServerInteractionService?接口獲取了上下文,然后再通過其余的兩個接口找到它客戶端還有資源api的信息。然后再調用了自定義的?CreateConsentViewModel?對象創建了consent對象。

以上我們的控制器就完成了,現在我們搞一下視圖,在視圖中我們就是簡單做一下,使用ConsentVm作為視圖綁定對象,在之中我遇到了一個Bug,我用?@Html.Partial("_ScopeListItem", item);?的時候突然就報錯了,在頁面上顯示一個Task一大堆的錯誤信息,我也不知道啥情況(望大佬解決),換成不是異步的就行了。

下面是局部視圖的定義,傳過來的對象是?ResourceScopes?和?IdentityScopes?,但他們都是對應ScopeVm,在其中呢就是把他們哪些權限列出來,然后勾選,在它的父頁面已經做了post提交,所以我們還得弄個控制器。

?這個方法的參數是我們所自定義的實體,其中有按鈕還有返回的地址,在其中我們判斷了是否選擇OK,選擇不那就直接賦一個拒絕的指令,如果ok那么就直接判斷是否有這個權力,因為我們在config中進行了配置,然后如果有,呢么就直接添加,在不==null的清空下,我們根據?returlUrl?這個字符串獲取了請求信息,然后通過?GrantConsentAsync?方法直接同意了授權,然后直接跳轉過去,就成功了。

最后,在調試的時候一定要Client的?RequireConsent?設置為true.?

原文地址:https://www.cnblogs.com/ZaraNet/p/11146224.html


.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?

總結

以上是生活随笔為你收集整理的.NET Core IdentityServer4实战 第六章-Consent授权页的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。