使用自定义API进行单点登录

时间:2019-08-15 05:23:18

标签: c# asp.net-mvc iis single-sign-on

我想使用自己的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在不同的域中。

有什么办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

我认为cookie是不可能的,因为它们是受域约束的,并且不会与对域的请求一起发送。我想您需要了解其他技术。

我希望this链接会有用

祝你好运