Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# IdentityServer3发出部分登录cookie_C#_.net_Asp.net Identity_Identityserver3 - Fatal编程技术网

C# IdentityServer3发出部分登录cookie

C# IdentityServer3发出部分登录cookie,c#,.net,asp.net-identity,identityserver3,C#,.net,Asp.net Identity,Identityserver3,我目前在我的Idsrv登录页面上有一个注册链接,该链接重定向到与Idsrv托管在同一管道上的MVC注册页面。注册流程如下所示: 创建帐户(电子邮件和密码)并保存到数据库 选择订阅并购买(使用userId将购买信息存储在数据库中) 重定向回客户端应用程序 过去,登录页面上的注册链接会将用户带到帐户创建页面,在他们输入电子邮件和密码后,我会使用以下代码发布Idsrv登录cookie: var login = new AuthenticatedLogin {

我目前在我的Idsrv登录页面上有一个注册链接,该链接重定向到与Idsrv托管在同一管道上的MVC注册页面。注册流程如下所示:

  • 创建帐户(电子邮件和密码)并保存到数据库
  • 选择订阅并购买(使用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]属性修饰,以确保只有授权用户才能访问这些页面


    此后,我添加了外部登录支持,并在完成本地帐户设置之前,使用部分登录将新的外部用户重定向到此注册序列。我遇到的问题是,现在我有[IdentityServerPartialIn]和[IdentityServerFullLogin]属性,它们需要在同一个控制器方法上,这显然不起作用。我想知道如何修改我原来的注册顺序(使用注册链接)以使用部分登录而不是完全登录,并发出完整登录cookie。似乎需要一个环境。IssuePartialLogiconOkie()方法来完成我需要做的事情,但不确定如何继续。

    您必须更改执行授权的方式。您可以在操作方法本身中显式/手动地使用这些属性,而不是使用这些属性。如果用户具有这两种登录类型中的任何一种,则可以通过简单的OWIN扩展方法了解:

    Got it,find创建一个自定义IAAuthenticationFilter,该筛选器使用GetIdentityServerPartialLogicInSync和GetIdentityServerFullLoginAsync确保用户部分或完全登录。谢谢