首页 > 解决方案 > 使用自定义 API 单点登录

问题描述

我想使用我自己的 API 实现单点登录功能。第三方应用程序(Web 应用程序)将调用此 API 并对用户进行身份验证。对于我的 API 和其他应用程序之间的通信,将使用 Web 请求。以下是我为此提供的解决方案,

我在我的应用程序上创建了一个 API,并根据请求值进行身份验证。身份验证成功后,我创建身份验证 cookie 并将其添加到响应中。在另一个应用程序上,我使用了 aHttpWebRequest并创建了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 在不同的域中。

有没有办法解决这个问题?

标签: c#asp.net-mvciissingle-sign-on

解决方案


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

我希望这个 链接会有用

祝你好运


推荐阅读