【问题标题】:Securing WCF services using ASP.NET Auth and a DomainService with Silverlight使用 ASP.NET Auth 和具有 Silverlight 的 DomainService 保护 WCF 服务
【发布时间】:2011-07-23 17:38:01
【问题描述】:

我的 Silverlight 应用程序(VS2010 Silverlight Business 模板附带的服务)中运行了基本的 ASP.NET 身份验证域服务。

如何使用此授予的身份验证来保护由标准 WCF 服务(也托管在 IIS 中的同一应用程序中)公开的安全方法?

【问题讨论】:

    标签: c# .net silverlight wcf wcf-ria-services


    【解决方案1】:

    好的,这就是你的做法,标准的 WCF 服务需要几个属性,你需要分配Thread.CurrentPrincipal

    [ServiceContract(Namespace = "")]
    [SilverlightFaultBehavior]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class Service1
    {
        public Service1()
        {
            Thread.CurrentPrincipal = HttpContext.Current.User;
        }
    
        [OperationContract]
        [PrincipalPermission(SecurityAction.Demand, Role = "Registered Users")]
        public string DoSomeWork()
        {
            return "working";
        }
    }
    

    【讨论】:

      【解决方案2】:

      这里是一个很好的起点:Security for WCF RIA Services。您正在寻找的是 RequiresAuthentication 属性。

      [RequiresAuthentication]
      public Foo SomeMethodCall(object parameter1)
      {
          return service.GetResult(parameter1)
      }
      

      【讨论】:

      • 我不认为你完全明白我的问题。我有一个提供身份验证的域服务,但是我想要保护一个普通的 WCF 操作。授予用户身份验证后,他们应该能够使用票证来调用标准 WCF 方法(不是 DomainService 方法)。
      • 看起来我读到的有点不同。感谢您发布信息。看起来很有趣。
      • 其实很简单,而且就行了,只要你知道怎么做:D
      猜你喜欢
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多