0

我正在使用 Jasig CAS .NET 客户端在我的应用程序中使用来自服务器的 SSO 进行身份验证。我已经按照文档中的说明实现了所有内容,并在我的所有控制器中添加了 [Authorize]。

从我的应用程序和我正在尝试集成的应用程序登录工作正常。我可以从任一应用程序登录,并且用户已通过身份验证。

问题在于注销。如果我从其他应用程序中注销,用户仍然可以访问我的应用程序。

这是因为 CAS 注销无法删除 cookie 吗?还是我做错了什么?

4

1 回答 1

4

您仍然登录到您的 Web 应用程序,因为身份验证信息存储在 cookie 中,并且您的 Web 应用程序(或 .NET CAS 客户端)不会检查每个页面请求是否仍然在 CAS 服务器上登录。cookie 用于此目的,直到过期。

所以基本上 CAS 服务器必须有一个Single Sign-Out页面,该页面可以让用户从所有使用该 CAS 服务器的 Web 应用程序中注销,包括您的。CAS 服务器必须配置为在您的 Web 应用程序中调用注销页面,这反过来会放弃 ASP.NET 会话并删除身份验证 cookie。该CasAuthentication.SingleSignOut()方法为您执行此操作。

于 2013-07-08T08:34:28.473 回答