我想使用自己的API实现单一登录功能。第三方应用程序(Web应用程序)将调用此API并对用户进行身份验证。为了在我的API与其他应用程序之间进行通信,将使用Web请求。下面是我为此提供的解决方案,
我已经在我的应用程序上创建了一个API,并根据请求值进行身份验证。成功通过身份验证后,我将创建身份验证cookie并将其添加到响应中。
在另一个应用程序上,我使用了HttpWebRequest
并创建了CookieContainer
。然后,我从响应中获取cookie,并将这些cookie分配给Response
。
var response = (HttpWebResponse)http.GetResponse();
foreach (Cookie cook in response.Cookies)
{
Response.Cookies.Add(new System.Web.HttpCookie(cook.Name, cook.Value)
{
Domain = cook.Domain,
Expires = cook.Expires
});
}
在我的测试环境中,这很好用,因为身份验证API和其他应用程序都在同一域中。但是在客户测试阶段,由于域不匹配,此操作不起作用。因为身份验证API在不同的域中。
有什么办法解决这个问题?