簡體   English   中英

IdentityServer3發出部分登錄cookie

[英]IdentityServer3 Issue partial login cookie

我目前在Idsrv登錄頁面上有一個注冊鏈接,該鏈接重定向到與Idsrv相同管道上托管的MVC注冊頁面。 注冊流程如下:

  1. 創建帳戶(電子郵件和密碼)並保存到數據庫。
  2. 選擇訂閱並購買(使用userId在DB中存儲購買信息)。
  3. 重定向回客戶端應用

過去,登錄頁面上的注冊鏈接會將用戶帶到帳戶創建頁面,在他們輸入電子郵件和密碼后,我將使用以下代碼發布Idsrv登錄cookie:

var login = new AuthenticatedLogin
                {
                    IdentityProvider = IdentityServer3.Core.Constants.BuiltInIdentityProvider,
                    Subject = user.Id,
                    Name = user.UserName
                };

   this.Request.GetOwinContext().Environment.IssueLoginCookie(login);

訂閱和購買頁面裝飾有[IdentityServerFullLogin]屬性,以確保只有授權用戶才能訪問它們。

此后,我已經添加了外部登錄支持,並正在使用“部分登錄”將新的外部用戶重定向到此注冊序列,然后再完成其本地帳戶設置。 我遇到的問題是現在我具有[IdentityServerPartialLogin]和[IdentityServerFullLogin]屬性,它們必須位於同一控制器方法上,這顯然不起作用。 我想知道如何修改我的原始注冊順序(使用注冊鏈接)以使用部分登錄而不是完全登錄並發布完整登錄cookie。 似乎需要使用Environment.IssuePartialLoginCookie()方法來完成我需要做的事情,但不確定如何進行。

您必須更改執行授權的方式。 除了使用這些屬性,您可以在操作方法本身中明確/手動進行操作。 有很簡單的OWIN擴展方法可以學習用戶是否具有這兩種登錄類型之一: https ://identityserver.github.io/Documentation/docsv2/advanced/owin.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM