我正在为SAML2授权编写自己的授权提供程序。为了帮助我,我得到了第三方库来处理大部分SAML2规范。
但是,此库是为ASP.NET HttpHandler
接口编写的,其中ProcessRequest
方法没有返回值。
使用这个库,方法本身不会返回任何内容,但是我负责压缩身份验证请求XML的大部分工作,创建XML的签名并告诉浏览器重定向到SAML2登录页面,具有正确的属性为了电话。所以它为我做了很多工作。
一些伪代码:
public object Authenticate(IServiceBase authService, IAuthSession session, Authenticate request)
{
...
AuthnRequest authnRequestXML = saml2Util.CreateAuthnRequestXML();
HttpResponseBase httpResponse = authService.Request.Response.OriginalResponse as HttpResponseBase;
// This takes care of signing, compression of the authnRequestXML and the redirect action
SAML2Library.SendAuthnRequestByHTTPRedirect(httpResponse, DestinationURL, authnRequestXML, certificatePrivateKey);
return ?;
}
返回null
没有用。
在这种情况下,我应该将Authenticate
方法的返回值设置为什么?
答案 0 :(得分:2)
要返回重定向响应,您可以返回HttpResult
例如:
return HttpResult.Redirect(redirectUrl);