Как предотвратить публикацию сброса куки с помощью ASP.NET? - PullRequest
2 голосов
/ 09 февраля 2011

У меня есть веб-сайт, который использует файлы cookie с использованием ASP.NET, однако каждый раз, когда я публикую новый сайт и загружаю все или некоторые из новых .dll, он делает недействительными все существующие файлы cookie.
Файлы cookie используются для простого отслеживаниявход в систему, но я хочу сохранить файлы cookie, созданные перед публикацией, чтобы впоследствии их можно было использовать - похоже, это влияет на браузеры на основе webkit, и в моем тестировании я мог повторить эту проблему после каждой частичной или полной публикации.

Ниже приведен код, который я использую для установки файла cookie:

If HttpContext.Current.Response.Cookies(COOKIE_NAME) Is Nothing Then
            Dim _cookie As New HttpCookie(COOKIE_NAME, CookieValue)
            _cookie.Path = COOKIE_PATH
            _cookie.Expires = COOKIE_EXPIRES
            HttpContext.Current.Response.Cookies.Add(_cookie)
        Else
            With HttpContext.Current.Response.Cookies(COOKIE_NAME)
                .Path = COOKIE_PATH
                .Value = Value
                .Expires = COOKIE_EXPIRES
            End With
        End If

А вот код, который я использую для чтения файла cookie:

If HttpContext.Current.Request.Cookies(COOKIE_NAME) IsNot Nothing Then
    Return HttpContext.Current.Request.Cookies(COOKIE_NAME).Value
End If

Где COOKIE_NAME - этоустановлен на «MyCookie», а COOKIE_PATH установлен на «/», а COOKIE_EXPIRES установлен на «# 1/1/2035 #»

Я могу нормально читать / писать файлы cookie, но как только я сделаю публикацию всех ранеесозданные cookie-файлы становятся нечитаемыми браузерами Webkit, хотя их можно снова записывать, но я не уверен, что так будет всегда - я хочу, чтобы публикация вообще не влияла на cookie-файлы - возможно ли это?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2011

Я думаю, вам стоит взглянуть на использование CookieContainer.

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.cookiecontainer.aspx

Я имел дело с ними в прошлом, используя несколько веб-запросов.

0 голосов
/ 09 февраля 2011

Убедитесь, что вы определили машинный ключ в своем файле web.config. В противном случае ViewState, Session, Forms авторизация или другие зашифрованные и / или защищенные значения будут недействительными при перезапуске вашего приложения.

Вот хорошая статья о codeplex .

Этот - это онлайн-инструмент, который генерирует для вас машинный ключ.

<system.web>
 <machineKey YOUR VALUES HERE/>
</system.web>
...