WIF を使用して STS をセットアップしましたが、ユーザーがサインインしているかどうかを公開して、ユーザーがサインインしているかどうかを RP が判断できるようにしたいと考えています。ユーザーが STS にリダイレクトして戻る必要はありません。ユーザーがサインインしている場合、RP で別のプロセス フローが発生するため、プロセスのこの時点でサインインを強制するのではなく、知っておくことが重要です。
私の計画は、HttpWebRequest を介してヒットすると、context.User.Identity.IsAuthenticated の出力を返す単純な汎用ハンドラーを STS に作成することでした (ここで、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が返されることです(実際、IDはnullです)。これを行うのは完全に間違っていますか? RP からハンドラーをヒットすると、RP でユーザーのステータスが返されますか、何か間違っている可能性がありますか?