我想知道对我的Nancy API的所有调用实施SSL的正确方法。我目前的(C#)实现是:
public abstract class NancyHttpsModule : NancyModule
{
public NancyHttpsModule(string baseUrl) : base(baseUrl)
{
this.RequiresHttps();
}
}
这似乎与非SSL端口上的403 Forbidden一起使用。
有更好的方法吗? (不使用像this article这样的IIS重定向。)
答案 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
}
}