2010-10-25 98 views
1


我有一個ASP:NET MVC 2網站是在SSL上。我想創建這樣一個cookie:如何使用SSL頁面創建Cookie?

FormsAuthentication.SetAuthCookie(validatedUser.UserName, false); 
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, validatedUser.SecureToken, DateTime.Now, DateTime.Now.AddMinutes(10), false, String.Empty); 

HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(authTicket)); 
Response.Cookies.Add(cookie);  

但我得到一個異常,告訴:「應用程序被配置爲發出安全cookie,這些cookie需要瀏覽器發出了SSL請求(HTTPS協議) 。然而,目前的要求是不支持SSL

在web.config中,我有:

<authentication mode="Forms"> 
    <forms loginUrl="~/Account/LoginError" timeout="2880" requireSSL="true" protection="All"/> 
</authentication>  

我該如何解決這個問題?

+0

有人一直在閱讀此內容嗎? http://codebutler.com/firesheep – 2010-10-25 11:27:30

回答

1

requireSSL="false"或使用http://來請求您的網站。請注意,如果你關心安全性,這兩個都不是好主意。如果您想讓安全網站離開requireSSL="true"並使用https://來請求您的網站。

另外,SetAuthCookie方法已寫入cookie來響應,所以你不需要休息:

FormsAuthentication.SetAuthCookie(validatedUser.UserName, false); 

就足夠了。您無需擔心FormsAuthenticationTicket並將cookie添加到響應中。

+1

我有requireSSL =「true」並使用https://,因爲我需要安全性,但我總是得到這個異常。 – dani 2010-10-25 11:29:25

+1

那麼,你得到的例外證明你沒有使用'https://'。或者在客戶端和Web服務器之間有一些防火牆或代理服務器來重寫請求? SSL證書是否安裝在Web服務器上? – 2010-10-25 11:30:56

+0

我發現了這個問題。這是當我運行網站窗體VisualStudio它不會工作。如果我通過IIS運行網站,它可以工作。 – dani 2010-10-25 11:59:11