【发布时间】:2014-01-21 00:38:13
【问题描述】:
我已经使用 WIF 设置了 STS,并希望公开用户是否已登录,以便 RP 可以确定用户是否已登录,而无需用户重定向到 STS 并返回。如果用户已登录,RP 上将发生不同的流程,因此在此过程中了解但不强制登录很重要。
我的计划是在 STS 上创建一个简单的通用处理程序,当通过 HttpWebRequest 命中时,它会返回 context.User.Identity.IsAuthenticated 的输出(其中 context 是传递给 ProcessRequest 方法的 HttpContext:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
if (context.User != null && context.User.Identity.IsAuthenticated)
context.Response.Write("True");
else
context.Response.Write("False");
}
我的问题是,如果用户已登录并且我直接点击此处理程序,它会返回 True,但如果我以编程方式从 RP 中点击处理程序,它会返回 False(实际上 Identity 为空)。 我这样做是完全错误的吗?从 RP 中点击处理程序会返回 RP 上用户的状态,还是我做错了什么?
【问题讨论】:
标签: asp.net httphandler wif