Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ASP.NET身份验证和Silverlight的DomainService保护WCF服务_C#_.net_Silverlight_Wcf_Wcf Ria Services - Fatal编程技术网

C# 使用ASP.NET身份验证和Silverlight的DomainService保护WCF服务

C# 使用ASP.NET身份验证和Silverlight的DomainService保护WCF服务,c#,.net,silverlight,wcf,wcf-ria-services,C#,.net,Silverlight,Wcf,Wcf Ria Services,我的Silverlight应用程序(VS2010 Silverlight业务模板附带的应用程序)中运行了基本的ASP.NET身份验证域服务 如何使用此授权的身份验证来保护标准WCF服务(也托管在IIS中的同一应用程序中)公开的方法?一个好的起点是:。您要查找的是属性 [RequiresAuthentication] public Foo SomeMethodCall(object parameter1) { return service.GetResult(parameter1) }

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


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

一个好的起点是:。您要查找的是属性

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

一个好的起点是:。您要查找的是属性

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

好的,这就是您要做的,标准WCF服务需要几个属性,您需要分配
线程。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";
    }
}

好的,这就是您要做的,标准WCF服务需要几个属性,您需要分配
线程。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";
    }
}

我想你不太明白我的问题。我有一个提供身份验证的域服务,但我想保护一个普通的WCF操作。一旦用户被授予了auth,他们就应该能够使用票据调用标准的WCF方法(不是DomainService方法)。谢谢你发布信息。看起来很有趣。实际上这很简单,只要你知道怎么做就行了:我想你还没完全明白我的问题。我有一个提供身份验证的域服务,但我想保护一个普通的WCF操作。一旦用户被授予了auth,他们就应该能够使用票据调用标准的WCF方法(不是DomainService方法)。谢谢你发布信息。看起来很有趣。实际上这很简单,只要你知道怎么做就行了:D