5

Bir ASP.NET MVC4 web uygulamasındaki kullanıcıları kimlik doğrulama aslına uygun olarak kullanarak kimlik doğrulaması yapmak için System.IdentityModel kullanıyorum. (Kod bu makalede dayalı: http://brockallen.com/2013/01/26/replacing-forms-authentication-with-wifs-session-authentication-module-sam-to-enable-claims-aware-identity/)SessionAuthenticationModule Cookie Handler HttpOnly güvenli tanımlama bilgisi oluşturmuyor

Benim ClaimsBasedAuthenticationService sınıfı SessionSecurityToken SAM tanımlama bilgisi verir ve tüm ben sadece şimdi HTTPOnly olarak oturum çerezleri oluşturarak veya gerektirmeyen olduğunu fark olması dışında ... iyi olmuştur SSL gerektirecek şekilde. Kodu ayıkladığımda, CookieHandler nesnesindeki bu özelliklerin hata ayıklayıcısında doğru şekilde ayarlandığını görebiliyorum, ancak oluşturulan son oturum tanımlama bilgisi HTTPOnly ve Güvenli bayraklarının işaretlenmemiş halidir.

ben gibi açıkça true bu ayarlamak için web.config hatları var: komut gizli olmasını benim FedAuth çerezleri için sırayla başka Eksik bir şey (varsa

<system.web> 
    <httpCookies httpOnlyCookies="true" requireSSL="true" /> 
    <authentication mode="Forms"> 
    <forms ... requireSSL="true" /> 
    </authentication> 
... 
</system.web> 
<system.identityModel.services> 
    <federationConfiguration> 
    <cookieHandler requireSsl="true" hideFromScript="true" /> 
    </federationConfiguration> 
</system.identityModel.services> 

birisi bana söyleyebilir HTTPOnly) ve SSL gerektirir?

+0

Birisi, httpCookies öğesine lockItem = "true" özniteliğini eklemeyi önerdi, ancak bu ' Hiçbir şey yapmayın. –

cevap

0

Aynı uygulamayı kullanıyorum ve Fiddler2'yi kullanarak sorununuzu görmüyorum. Ancak sorun, hata ayıklama aracınızla ilişkili olabilir mi? IE10 hata ayıklama araçlarında güvenli ve yalnızca http bayrakları yalnızca çerezler ilk alındığında görüntülenir. Chrome hata ayıklama araçlarını kullanarak kontrol ederseniz, tüm isteklerde doğru şekilde görüntülenen bayrakları görmeniz gerekir.

+0

Chrome dev araçları da bunu göstermez. Ben w/Fiddler2 denedim, ancak tüm istek, hatta "bir" ana bilgisayar adı "tüneli" göstermez. Fiddler'in neden dev araçlar gibi istek/yanıt ayrıntılarını göstermediğinden emin değil. –

+0

HTTPS trafiğini çözmek için Fiddler'ı kurdunuz mu? Araçlar | Fiddler Options sonra HTTPS sekmesi); Orta hücumda etkili bir adam, ama hata ayıklama için ne görmeniz gerektiğini göreceksiniz. –

0

Bu işi aldınız mı? Temelde aynı kodu kullanıyorum ve hepsi iyi.

aşağıdaki önerileri şey ile ilgisi olduğunu göremiyorum, ama ben önerebilirsiniz tek şey, çerez ömür boyu ayarlamak için vardır

<cookieHandler hideFromScript="true" requireSsl="true" persistentSessionLifetime="30" /> 

<forms loginUrl="/Whereever" timeout="30" requireSSL="true" /> 

ve

<system.webServer> 
    <modules> 
    <add name="SessionAuthenticationModule" type="System.IdentityModel.Services.SessionAuthenticationModule, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" /> 
    </modules> 
</system.webServer> 
+1

Şu an bir projede çalışmamıştım, ama hatırlarsam, özniteliğin doğru bir şekilde ayarlandığını ve dev araçların sadece yalan söylediğini düşünüyorum:) ya da en azından düşünmeyi sevdiğim şey. –

İlgili konular