2015-11-12 18 views
8

Come ho provato a fare questo: filtroCome abilitare HTTPS in mvc6

1- Situato in avvio:

 public IServiceProvider ConfigureServices(IServiceCollection services) 
     { 
     //... 
     services.AddMvc(); 
     services.Configure<MvcOptions>(options => 
     { 
      options.Filters.Add(new RequireHttpsAttribute()); 
     }); 

2- set [RequireHttps] in cotroler

[RequireHttps] 
public class HomeController : BaseController 
{ 
    public ViewResult Index() 
    { 
     return View(); 
    } 
} 

3 - add in project.json

"kestrel": "Microsoft.AspNet.Hosting --server=Microsoft.AspNet.Server.Kestrel --server.urls=https://localhost:1234" 

E ancora non funziona g. Cosa ho fatto di sbagliato?

+0

Questa domanda è per MVC6. La risposta che hai aggiunto come possibile duplicato non è utile in questo caso. – Raskolnikov

risposta

5

MODIFICA: Questa è una nuova funzionalità che non è ancora in beta8. Ho notato che ho cercato di trovare questa funzionalità nel tag beta8 su Github. Sembra che la tua unica soluzione sia per ora, ma dietro IIS (che supporta HTTPS) o dietro NGINX mentre aggiungerai quel modulo per te.

Assicurarsi di abilitare SSL nel metodo Startup.cs/Configure.

Si è fatto in questo modo:

var certPath = "c:\\mycert.pfx"; 
app.UseKestrelHttps(new X509Certificate2(certPath, "certificatePassword")); 

I filtri d'azione sarà solo agire sulla URL reale. È necessario ascoltare su una porta con un certificato su di esso per avere HTTP.

Spero che questo aiuti.

Source to sample Startup.cs