2017-09-15 125 views
2

我在我的Web.Config和Glbal.asax.cs文件中包含下面的代碼行,但仍然在瀏覽器中使用開發人員工具時,我可以看到未設置安全標誌餅乾。安全標誌未設置爲.Net應用程序中的Cookies

還在我的IIS中配置了SSLSettings(Selected複選框requireSSL)。

我想將所有Cookie的安全屬性設置爲不僅可以接收,還可以發送給Cookie。請提供任何建議。

在web.config中:

<httpCookies requireSSL="true"/> 

在Global.asax.cs中:

protected void Application_EndRequest(object sender, EventArgs e) 
     { 
      if (Request.IsSecureConnection == true && HttpContext.Current.Request.Url.Scheme == "https") 
      { 
       Request.Cookies["ASP.NET_SessionID"].Secure = true; 
       if (Request.Cookies.Count > 0) 
       { 
        foreach (string s in Request.Cookies.AllKeys) 
        { 
         Request.Cookies[s].Secure = true; 
        } 
       } 

       Response.Cookies["ASP.NET_SessionID"].Secure = true; 
       if (Response.Cookies.Count > 0) 
       { 
        foreach (string s in Response.Cookies.AllKeys) 
        { 
         Response.Cookies[s].Secure = true; 
        } 
       } 
      } 
     } 

在瀏覽器:enter image description here

+0

嘗試Application_BeginRequest或Session_Start中的相同代碼。 – G01

+0

@ G01 - 我已經按照你的建議使用了Global.asax.cs文件中的代碼。但結果相同。任何其他方式來設置安全? –

+0

在Web.config文件中將HttpOnlyCookie設置爲true。 – G01

回答

1

有兩種方式,在web.config中一個httpCookies元素允許您打開僅傳輸所有cookie的requireSSL,包括僅在SSL中的會話以及表單身份驗證,但是如果您在httpcookies上啓用SSL,則還必須打開i nside也配置形式。

<form> 
<httpCookies requireSSL="true" />