0

WCF サービスもホストする基本的な Silverlight ビジネス アプリケーションがあります。サービスは、管理者の役割を必要とするように保護されています。

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class Service1 : IService1
{
    public Service1()        
    {            
        Thread.CurrentPrincipal = HttpContext.Current.User;
    }

    [PrincipalPermission(SecurityAction.Demand, Role = "Administrators")]
    public void DoWork()
    {
    }
}

奇妙なことに、Silverlight アプリケーションからログアウトした後でも、Fiddler を使用して DoWork() へのサービス呼び出しを正常に再生できました。

ブレークポイントをオンに設定すると、以前に認証されたユーザー ID がまだ保持されていることがThread.CurrentPrincipal = HttpContext.Current.User;示されました。HttpContext.Current.User

ここで何が起こっているのですか?

4

0 に答える 0