如何在使用Nancy

时间:2015-08-24 15:32:09

标签: c# owin nancy nowin

所以我将NancyNowin一起使用。

使用Nowin的美妙之处在于,我不必使用各种Windows命令来设置简单的Web服务器。根据Nowin自述文件,我可以使用以下行配置SSL

builder.SetCertificate(new X509Certificate2("certificate.pfx", "password"));

然而,当使用Nancy时,我似乎无法访问此Server构建器类。一切似乎都在幕后神奇地发生。

如何将证书传递给Nowin?

3 个答案:

答案 0 :(得分:5)

  1. 确保安装了Nancy.Owin软件包。

  2. 使用此类代码启动服务器:

  3. using System;
    using System.Net;
    using System.Threading.Tasks;
    using Nancy.Owin;
    using Nowin;
    
    public class Program
    {
        static void Main(string[] args)
        {
            var myNancyAppFunc = NancyMiddleware.UseNancy()(NancyOptions options =>
            {
                // Modify Nancy options if desired;
    
                return Task.FromResult(0);
            });
    
            using (var server = ServerBuilder.New()
                .SetOwinApp(myNancyAppFunc)
                .SetEndPoint(new IPEndPoint(IPAddress.Any, 8080))
                .SetCertificate(new X509Certificate2("certificate.pfx", "password"))
                .Build()
            )
            {
                server.Start();
    
                Console.WriteLine("Running on 8080");
                Console.ReadLine();
            }
        }
    }
    

答案 1 :(得分:0)

我认为您应该遵循本文中描述的方式:https://msdn.microsoft.com/en-us/magazine/dn451439.aspx 首先,您根据Nowin文档创建Web服务器,然后将Nancy添加为管道组件。我用NowingSample(来自Nowin包)测试了这种方式并且它可以工作。

答案 2 :(得分:0)

如果您查看this document,则说明以下内容:

OWIN的配置

如果主持人发送它,它就会在那里。

如果您使用IIS作为主机。您需要执行相同的config as with Aspnet。并且您需要一个支持ClientCertificate的OWIN Aspnet主机。 OWIN demo in Nancy中的那个。 @prabirshrestha之后的那个也是。

在OWIN演示中,选中this line

if (request.ClientCertificate != null && request.ClientCertificate.Certificate.Length != 0)
        {
            env[OwinConstants.ClientCertificate] = new X509Certificate(request.ClientCertificate.Certificate);
        }

希望它对你有所帮助,祝你好运。