2013-04-22 14 views
5

Sto sviluppando un'applicazione web. Per la sicurezza delle informazioni degli utenti ho bisogno di una connessione https. Sto sviluppando questo locale al momento. Ho seguito il tutorial su: http://weblogs.asp.net/dwahlin/archive/2009/08/25/requiring-ssl-for-asp-net-mvc-controllers.aspxCome usare https in C#?

Quando costruisco il mio progetto il caricamento della pagina, ma l'URL è: http: // ...

Nel mio codice ho messo:

[RequiresSSL] 
    public ActionResult Index() 
    { 
     //var model = Adapter.EuserRepository.GetAll(); 

     return View(db.Eusers.ToList()); 
    } 

codice dal sito:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

namespace extranet.Helpers 
{ 
    public class RequiresSSL: ActionFilterAttribute 
    { 
     public override void OnActionExecuting(ActionExecutingContext filterContext) 
     { 
      HttpRequestBase req = filterContext.HttpContext.Request; 
      HttpResponseBase res = filterContext.HttpContext.Response; 

      //Check if we're secure or not and if we're on the local box 
      if (!req.IsSecureConnection && !req.IsLocal) 
      { 
       var builder = new UriBuilder(req.Url) 
       { 
        Scheme = Uri.UriSchemeHttps, 
        Port = 443 
       }; 
       res.Redirect(builder.Uri.ToString()); 
      } 
      base.OnActionExecuting(filterContext); 
     } 


    } 
} 

Cosa mi manca che l'URL non sia basato su HTTPS? È perché sto lavorando in locale?

Grazie in anticipo

risposta

3

I suoi controlli di filtro per vedere se la richiesta è locale con questa affermazione: && !req.IsLocal. Se lo è, quindi non reindirizza. Se rimuovi questa dichiarazione, ti verrà richiesto di accedere all'azione tramite HTTPS, indipendentemente dal fatto che tu sia locale o meno.

+0

wow ... come potrei non vedere quella * vergogna *, quando rimuovo quel pezzo di codice poi ottengo un 401 - non posso fare connessione con il localhost del server, ma il link è https ora ... – thomvlau

+0

Hai installato un certificato (di prova)? –

0

quando rimuovo quel pezzo di codice in tanto sono un 401 - non può fare connessione con il server localhost, ma il collegamento è https ora

rimuovendo tale parte del codice è solo parte della soluzione al tuo problema. Tornando alla tua domanda iniziale di "come puoi usare https" allora hai bisogno di enable it using this guide.