public void ProcessIdpInitiatedRequest(string protocol)
{
var protocolIdentifier = "urn:" + protocol;
var scope = configuration.RetrieveDefaultScope();
if (scope == null)
{
Response.Write(protocol + " IdP initiated failed.");
Response.End();
return;
}
var relayState = Request["RelayState"];
var returnUrl = string.IsNullOrWhiteSpace(relayState) ? "" : relayState;
var originalUrl = $"?wa=wsignin1.0&wtrealm={Uri.EscapeDataString(scope.Identifier)}&wctx={"ru=" + returnUrl}&whr={Uri.EscapeDataString(protocolIdentifier)}";
ProcessResponse(protocolIdentifier, originalUrl);
HttpContext.ApplicationInstance.CompleteRequest();
}