0

我有一个基本的 Silverlight 业务应用程序,它还托管 WCF 服务。该服务是安全的,需要管理员角色。

[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() 的服务调用。

设置断点Thread.CurrentPrincipal = HttpContext.Current.User;表明HttpContext.Current.User仍然持有以前经过身份验证的用户身份。

这里发生了什么?

4

0 回答 0