2009-09-18 11 views

cevap

82

iki yolu vardır web.config bir httpCookies eleman sadece SSL oturumu dahil tüm çerezleri iletmek hangi requireSSL açmak için izin veren tek ve aynı zamanda iç kimlik oluşturur, ancak httpcookies SSL açarsanız siz de açmalısınız iç formları da yapılandırır. Bir <forms> elemanı içinde varsa, Ancak

<httpCookies requireSSL="true" /> 

: netlik için

Düzenleme: <system.web> elemanı olarak <system.web>

<httpCookies requireSSL="true" /> 
+1

+1 Bu çalıştı. Teşekkürler! – Alex

+11

+1 Netleştirmek gerekirse, auth çerezinde güvenli bayrağı true olarak ayarlamak için web.config dosyasına eklemeniz gereken budur. ' – Tr1stan

+6

Bu durumun (sunucu düzeyinize bağlı olduğunu unutmayın)) yapılandırma. Test Bölgesini "Güvenli tanımlama bilgileri yayınlayacak şekilde yapılandırıldı. Bu çerezler tarayıcının SSL üzerinden istek göndermesini gerektirir (https protokolü). Ancak geçerli istek SSL üzerinden değil." Bunun nedeni, ters bir proxy uygulamasının mevcut olması ve tarayıcıların SSL üzerinden bağlanabilmesi, ancak IIS sunucusunun ters proxy'sinin 80 numaralı bağlantı noktasından geçmesiydi, dolayısıyla uygulama güvenli olduğunu düşünmüyordu. – mlhDev

130

koy, aşağıdaki öğeyi ekleyin system.web\authentication bloğunuz, daha sonraayarını geçersiz kılar 210, varsayılan false'a geri ayarlanıyor.

Bu durumda, form öğelerine de requireSSL="true" özniteliğini eklemeniz gerekir.

Yani ile sona erecek:

<system.web> 
    <authentication mode="Forms"> 
     <forms requireSSL="true"> 
      <!-- forms content --> 
     </forms> 
    </authentication> 
</system.web> 

bu elemanların MSDN belgeleri için here ve here bakınız.

+2

Küçük düzenleme (orada btw sisteminde auth node gerekir.Web ve formları):

+1

Sen aşırı sürme diğer web.config ayarları önlemek için, 'lockItem' özniteliğini ekleyerek ayarlama. Öyle: . Daha fazla bilgi burada http://www.dotnetnoob.com/2010/11/how-to-secure-aspnet-cookies.html – JTech

+0

Ayrıca, eğer bir "roleManager" elemanı varsa onun cookieRequireSSL = "true" olması gerekir ayrıca doğru olarak ayarlanmış. Ref. https://msdn.microsoft.com/en-us/library/system.web.security.roles.cookierequiressl(v=vs.110).aspx –

12

Bir kuruluş ortamında check-in kodu hakkında konuşuyorsanız, işler çabuk dağılır. Biz iyi yaklaşım aşağıdaki web.Release.config ihtiva sahip olduğunu tespit ettik:

<system.web> 
    <compilation xdt:Transform="RemoveAttributes(debug)" /> 
    <authentication> 
     <forms xdt:Transform="Replace" timeout="20" requireSSL="true" /> 
    </authentication> 
</system.web> 

, geliştiriciler etkilenmez Böylece (Debug çalıştıran) ve aldığım tek sunucuları Yayın kurar Çerezlerin SSL olması gerekiyor.

İlgili konular