private async Task <string> HandleSignIn(WsFederationMessage message, HttpContext context, string replyUrl) { var handler = CreateSessionHandler(); var request = new SignInRequest { User = context.User, Realm = message.Wtrealm, Parameters = message.Parameters }; var response = await _responseGenerator.GenerateSignInResponse(request); var wsTrustResponse = new WsTrustRequestSecurityTokenResponse { AppliesTo = new Uri(request.Realm), LifeTime = new WsTrustLifetime { Created = response.Token.ValidFrom, Expires = response.Token.ValidTo }, RequestedSecurityToken = response.Token }; var sb = new StringBuilder(); using (var xmlWriter = XmlWriter.Create(new StringWriter(sb))) { _serializer.Serialize(xmlWriter, wsTrustResponse); } _logger.LogInformation("Adding realm in session cookie {0}", message.Wtrealm); handler.AddRealm(context, message.Wtrealm); var wsResponse = new WsFederationMessage(); wsResponse.Wa = "wsignin1.0"; wsResponse.Wresult = sb.ToString(); wsResponse.Wctx = message.Wctx; wsResponse.IssuerAddress = replyUrl; var form = wsResponse.BuildFormPost(); return(form); }