我目前在我的Idsrv登錄頁面上有一個註冊鏈接,該鏈接重定向到與Idsrv相同的管道上託管的MVC註冊頁面。註冊流程如下:IdentityServer3問題部分登錄Cookie
- 創建賬戶(電子郵件&密碼)並保存到數據庫。
- 選擇訂閱併購買它(在具有userId的數據庫中存儲購買信息)。
- 重定向到客戶端應用程序
在過去,註冊登錄頁面上的鏈接將把用戶帳戶創建頁面,並在他們的電子郵件&密碼進入我會使用發出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()方法來完成我需要做的事情,但不知道如何繼續。
明白了,最終創建了一個使用GetIdentityServerPartialLoginAsync和GetIdentityServerFullLoginAsync的自定義IAuthenticationFilter,以確保用戶部分或完全登錄。 ! – narciero