gpt4 book ai didi

c# - Web API 重定向不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 23:30:13 27 4
gpt4 key购买 nike

我正在尝试使用 SAML 和 SP 发起的 SSO 实现一个项目。我的项目正在使用 MS Web API。

以下是我的 Controller 中的代码,它使用 CompenentSpace 作为 SAML 库启动 SAML 握手:

   public IHttpActionResult SAMLInitiateRequestToIdp(string DistrictToken)
{
_idsRepository.SsoLogEntry( ServerAddress, "SAML/ADFS", null, null, null, 0, "Student", "Info Only", SAMLConfiguration.Current.PartnerIdentityProviderConfigurations + " "/* + Response.ToString()*/, null, null, null);
string partnerIdP = "simon";
try
{
MapDistrictClaim = false;
DistrictClaim = DistrictToken;


partnerIdP = _samlHelper.initiateRequestToSp(DistrictClaim, ServerAddress);

SAMLServiceProvider.InitiateSSO(System.Web.HttpContext.Current.Response, null, partnerIdP);
return Ok(new { data = "get ok" });


}
catch (Exception ex)
{

return Ok(new { data = "get ok" });

}
}

不要担心“catch”子句。我知道它没有任何作用。

我遇到的问题是当我调用此方法时得到以下响应:

<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="https://adfstest.mywebsite.com/adfs/ls/idpinitiatedsignon?SAMLRequest=AAAfZLLbtswEEV%2FReBe1tsPwjLgSDFqIG2FyOmim4IixzYBiVQ5lNsC%2BfhQctKmC2c7jzv3zMwaWdf2dDvYs3qEnwOg9fZlTn6INFs0i0Xjz8MF%2BGlzjPxlkzB%2FnsJKLJciTpuIeN%2FAoNQqJ%2FEsJN4ecYC9QsuUdaEwyvxw5UfJIU5oGNM4ma3C5DvxSjdFKmanzrO1PdIgYOKI1iVmnBkAw80gUarTjOtuygUtBlL0UkkrmQWB8qS0It5OGw6T%2F5wcWYsw%2BqgYorzA30hltNVct3dSCSeak8EoqhlKpIp1gNRyWm8%2FP1DHQZtrEdJPh0PlV1%2FrA%2FG2iGBGw4VWOHRgajAXyeHp8eEfAqK%2BRXCJg1H%2Flszk8CIFmC%2FOTk6ieRY%2Fh2mYbLO0cDsvMz8tw3t%2FWawiv5jv7nb3izTLVvFzzZRXSjhp70nJowTh1fysdeuCaI3klni%2Fu1YhnQ79MXj%2FuiWyWY%2FVdLqnedf%2FcTt7gyObsazgtWt5BXzD24t%2BHbwTv07q6Yi9LyvdSv5nPGnH7O1h0SyaIlL4x6mUDgp74BO%2Fu1Xb6l%2BFAfclObFmcNsNNtep%2F3%2F65gU%3D&amp;SigAlg=http%3A%2F%2Fwww.w3.org%2F2000%2F09%2Fxmldsig%23rsa-sha1&amp;Signature=Dv9lr04SrKwRPxKs%2FLpqAqDsWPMcS%2BIFy%2FsLLWcAivf8s6WiV4dvei5LBa4MnYy4hXAyVYJ0JM7L6pBXaPCdz%2Fb5UtF525%2FQi%2Bpv8alyaplWJbXfgXWvjuRY%2FTxpnNN0wVGk7f6ZkCAmDEeZcSNNwW2YJGBvTk5kUORvQq1VhsMhZZmf3Q0VDRdjrTSzQ9K%2BbVEptm9Ed86Jb5I%2BYutc1U43FvSIQTNkpm8phC%2F3BlfyhbDRdMn3sSmCNkyel86oXfl7pnnozpDqPFWc6SRWaWJ%2BMv1IWs2SzcHbfvRAnkTdxx3Gokp%2Fd74f77oJLkUYNKgqsFIhrc6qSNqjO29heA%3D%3D">here</a>.</h2>
</body></html>
{"data":"get ok"}

当我通过电子邮件向 Component Space 发送关于我的初始问题时,我得到的回复是:“当您调用 SAMLServiceProvider.InitiateSSO 时,您正在使用 HTTP-Redirect 绑定(bind)发送 SAML 身份验证请求。

这意味着 302 重定向返回给浏览器。例如,见下文。

然后浏览器应该对这个包含编码的 SAMLRequest 的 URL 执行 GET。”

我收到此响应而不是浏览器重定向是否有原因?

最佳答案

答案是我返回了 OK,而我本应返回带有适当 URL 的重定向:

SAMLServiceProvider.InitiateSSO(System.Web.HttpContext.Current.Response, null, partnerIdP);
return Redirect(System.Web.HttpContext.Current.Response.RedirectLocation);

关于c# - Web API 重定向不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32555537/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com