Flex-WebORB-Asp.NET アプリケーションがあります。ログインすると、WebORB インターフェイスを実装する AuthenticationHandler があります。
IPrincipal CheckCredentials(string username, string password, Request message);
そこで、プリンシパルを作成して返します。WebORB はプリンシパルを使用して、リモート メソッド呼び出しの認証と承認をチェックします。
var principal = new GenericPrincipal(new GenericIdentity(user.id.ToString()), new[] { "admin" });
return principal
さて、この時点で、何が何でHttpContext.Current.User.Identity
あるかを確認すると、それは WindowsIdentity です。
ここまでは順調ですね。後で WebORB を介してリモート呼び出しが行われると、次のように呼び出して、ログインしているユーザーの ID を取得します。
Thread.CurrentPrincipal.Identity.Name
したがって、WebORB は、リモート呼び出しごとにスレッドの ID が設定されていることを確認していると思います。
問題は、(画像を取得するために) HttpHandler を呼び出すときに、ログインしているユーザーの ID も で取得しようとしましたThread.CurrentPrincipal.Identity.Name
が、うまくいかないことです。おそらく、HttpHandler では WebORB が動作しないためです。
どちらの場合も同じ方法でログインしているユーザーの ID を取得できるように、これをどのように解決しますか? セッションオブジェクトに入れますか?を変更できますHttpContext.Current.User.Identity
か? HttpContext.Current.User.Identity
は と同じであってはなりませんThread.CurrentPrincipal.Identity.Name
か?
ps: ユーザーは Active Directory にありません。