public Task SignOutAsync(SignOutContext context)
 {
     return inner.SignOutAsync(context);
 }
 public async Task SignOutAsync(SignOutContext context)
 {
     await this.inMemoryUserService.SignOutAsync(context);
 }
 public override Task SignOutAsync(SignOutContext context)
 {
     return Task.FromResult(0);
 }
        public async Task<IHttpActionResult> Logout(string id = null)
        {
            Logger.Info("Logout endpoint submitted");

            if (id != null && id.Length > MaxSignInMessageLength)
            {
                Logger.Error("id param is longer than allowed length");
                return RenderErrorPage();
            }
            
            var user = (ClaimsPrincipal)User;
            if (user != null && user.Identity.IsAuthenticated)
            {
                var sub = user.GetSubjectId();
                Logger.InfoFormat("Logout requested for subject: {0}", sub);
            }

            Logger.Info("Clearing cookies");
            sessionCookie.ClearSessionId();
            signOutMessageCookie.Clear(id);
            ClearAuthenticationCookies();
            SignOutOfExternalIdP();
            
            if (user != null && user.Identity.IsAuthenticated)
            {
                var message = signOutMessageCookie.Read(id);
                var signOutContext = new SignOutContext
                {
                    Subject = user
                };

                if (message != null)
                {
                    signOutContext.ClientId = message.ClientId;
                }

                await this.userService.SignOutAsync(signOutContext);
                await eventService.RaiseLogoutEventAsync(user, id, message);
            }

            return await RenderLoggedOutPage(id);
        }
 public async Task SignOutAsync(SignOutContext context)
 {
     await domainService.SignOutAsync(context.Subject, context.ClientId);
 }
 public override Task SignOutAsync(SignOutContext context)
 {
     //TODO Investigate if there is a endpoint on azure ad
     return base.SignOutAsync(context);
 }
 /// <summary>
 /// This method gets called when the user signs out.
 /// </summary>
 /// <param name="context">The context.</param>
 /// <returns></returns>
 public virtual Task SignOutAsync(SignOutContext context)
 {
     return Task.FromResult(0);
 }
 public async Task SignOutAsync(SignOutContext context)
 {
     foreach (var service in this.services)
     {
         await service.SignOutAsync(context);
     }
 }