0

IIS7 統合モードに移行していて、問題が発生しました。WindowsAuthentication を使用して認証しますが、WindowsPrincipal への参照を保存して、今後の要求で AD に対して必要に応じて承認できるようにします。IIS 7 統合モードでは、トークンは (要求間で) 閉じられているため、IsInRole を実行しようとすると、破棄された例外が生成されます。このトークンをキャッシュする方法、または WindowsPrincipal の使用を変更して、承認要求ごとに取得するために AD 要求を連続して行う必要がないようにする方法はありますか?

WindowsPrincipal.IsInRole("") - System.ObjectDisposedException: {"安全なハンドルが閉じられました"} からスローされる例外を次に示します。

ありがとう。

4

2 に答える 2

0

AcquireRequestStateイベントハンドラーでは、以下のように触れましHttpContext.Current.User.Identity.Name

var t = HttpContext.Current.User.Identity.Name;
var p = HttpContext.Current.Profile;

私のWCFサービスでは、IdentityProfileを なしで使用できましたObjectDisposedException

どうしてか分かりません。

于 2012-09-04T14:31:23.650 に答える
0

IIS に認証情報をキャッシュさせてみましたか?

web.config のセクションのオプションを確認してください。具体的にはauthPersistNonNTLMおよびauthPersistSingleRequest属性です。PersistNonNTLM=True は、コード内のカスタム実装なしで必要なことを正確に行うことができます。

http://www.iis.net/ConfigReference/system.webServer/security/authentication/windowsAuthentication

于 2011-02-08T01:08:00.960 に答える