C# WCF RESTful-单一操作方法的HTTPS

C# WCF RESTful-单一操作方法的HTTPS,c#,.net,wcf,rest,C#,.net,Wcf,Rest,是否可以在RESTful WCF中为单个操作方法启用https? 我将此服务用于移动应用程序,因此我不希望为整个服务启用https 对不起,我的英语…没有一个端点。端点的绑定需要决定是使用HTTP还是HTTPS(基于其传输绑定元素)。如果您真的想这样做(并且您可能不需要-尝试分析“大”响应是否使用SSL,您可能会发现差异并没有那么大),您可以定义两个端点,一个使用SSL进行单个操作,另一个不使用SSL进行其他操作,如下例所示: public class StackOverflow_2286522

是否可以在RESTful WCF中为单个操作方法启用https? 我将此服务用于移动应用程序,因此我不希望为整个服务启用https


对不起,我的英语…

没有一个端点。端点的绑定需要决定是使用HTTP还是HTTPS(基于其传输绑定元素)。如果您真的想这样做(并且您可能不需要-尝试分析“大”响应是否使用SSL,您可能会发现差异并没有那么大),您可以定义两个端点,一个使用SSL进行单个操作,另一个不使用SSL进行其他操作,如下例所示:

public class StackOverflow_22865228
{
    [ServiceContract]
    public interface ISecureOperation
    {
        [WebGet]
        int Add(int x, int y);
    }
    [ServiceContract]
    public interface IInsecureOperations
    {
        [WebGet]
        int Subtract(int x, int y);
        [WebGet]
        int Multiply(int x, int y);
    }
    public class Service : ISecureOperation, IInsecureOperations
    {
        public int Add(int x, int y) { return x + y; }
        public int Subtract(int x, int y) { return x - y; }
        public int Multiply(int x, int y) { return x * y; }
    }
    public static void StartService()
    {
        string baseAddressHttp = "http://localhost:8000/Service";
        string baseAddressHttps = "https://localhost:8888/Service";
        ServiceHost host = new ServiceHost(typeof(Service), new Uri(baseAddressHttp), new Uri(baseAddressHttps));
        host.AddServiceEndpoint(typeof(ISecureOperation), new WebHttpBinding(WebHttpSecurityMode.Transport), "")
            .Behaviors.Add(new WebHttpBehavior());
        host.AddServiceEndpoint(typeof(IInsecureOperations), new WebHttpBinding(), "")
            .Behaviors.Add(new WebHttpBehavior());
        host.Open();
        Console.WriteLine("Press ENTER to close");
        Console.ReadLine();
        host.Close();
    }
}

您不希望整个过程安全的原因是什么?移动性能,其他一些方法会返回大量数据。通过SSL和明文运行最大的操作之间的性能差异是什么?看起来不错,但是,我也在保留用户会话,我将无法使用不同的端点保持此会话,对的[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]私有只读HttpContext上下文;MySessionClass sessionObj{get{return context.Session[“SESSAO”]作为MySessionClass;}}}不,您不会保留会话。你一定要检查HTTPS是否真的会成为所有操作的问题,它很有可能不会。。。