是否有其他方法可以确保所有模块的NancyFx SSL?

时间:2015-03-14 04:54:15

标签: c# security nancy

我想知道对我的Nancy API的所有调用实施SSL的正确方法。我目前的(C#)实现是:

public abstract class NancyHttpsModule : NancyModule
{
    public NancyHttpsModule(string baseUrl) : base(baseUrl)
    {
        this.RequiresHttps();
    }       
}

这似乎与非SSL端口上的403 Forbidden一起使用。

有更好的方法吗? (不使用像this article这样的IIS重定向。)

1 个答案:

答案 0 :(得分:1)

您可以添加Before Request Hook来检查和发布重定向。在你的项目中创建一个启动任务,你不需要挂钩它,Nancy会把它拿起来。 (伪代码如下):

public class AlwaysUseHttps : IApplicationStartUp
{
    public void Initialize(IPipelines pipelines)
    {
        pipelines.BeforeRequest.AddItemToSTartOfPiepline(RedirectIfNotHttps);
    }

    private static Response RedirectIfNotHttps(NancyContext context)
    {
       //return null if it is already https
       //else, do a redirect as shown here: https://github.com/NancyFx/Nancy/blob/master/src/Nancy/Security/ModuleSecurity.cs
    }
}