使用ASP.NET Auth和使用Silverlight的DomainService保护WCF服务

时间:2011-07-23 17:38:01

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

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

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

2 个答案:

答案 0 :(得分: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";
    }
}

答案 1 :(得分:0)

一个好的起点是:Security for WCF RIA Services。你要找的是RequiresAuthentication属性。

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