如何检查是否已登录siteminder

时间:2014-04-08 00:09:11

标签: .net single-sign-on siteminder

如果用户已登录到site-minder受保护资源,是否有办法从.net进行检查?如果是这样,请获取一些标题信息。我的目标是找出我是否已经有一个站点管理员会议。

3 个答案:

答案 0 :(得分:1)

理想情况下,如果您使用SiteMinder保护您的应用程序,则HTTP请求到达应用程序代码的唯一方式是前面的Siteminder代理验证了请求。

您可以检查应用中是否存在 SM_USER 请求标头。它默认启用,所有受SiteMinder保护的资源都在请求中接收此标头。

希望这有帮助

答案 1 :(得分:0)

是的,您可以将SiteMinder代理配置为在进入.NET的HTTP请求中插入标头。检查是否存在此标头,如果存在,则表示用户已通过身份验证。我相信也会传入SMIDENTITY和SMSESSION cookie。请与您的SiteMinder支持人员联系,您也可以将一个简单的页面放在一起,返回所有标题和Cookie,并将结果与​​SiteMinder会话进行比较,而不是。

答案 2 :(得分:0)

SiteMinder确实会添加一个名为SMSESSION的cookie和一个在会话期间用作SSO令牌的值。但是,如果您需要依靠此值进行身份验证,则必须对其进行验证(任何人都可以在请求中添加cookie并将其传递给您)。 SiteMider的SDK提供了一个AgentApi类,可以为您执行此操作。您所做的是解码令牌然后重新创建用户凭据。您将需要具有最初颁发令牌的策略服务器的IP地址以及代理名称及其凭据。在提供的链接上要特别注意decodeSSOToken,isProtected和login方法。祝你好运。

https://support.ca.com/cadocs/0/CA%20SiteMinder%2012%2052-ENU/Bookshelf_Files/programming-reference/legacy-sm-java-sdk/netegrity/siteminder/javaagent/AgentAPI.html