System.Web.Security.FormsAuthentication.Encrypt возвращает ноль

Без отслеживания обязательств, но очень аккуратно и быстро.

template <typename F>
struct ScopeExit {
    ScopeExit(F&& f) : m_f(std::forward<F>(f)) {}
    ~ScopeExit() { m_f(); }
    F m_f;
};

template <typename F>
ScopeExit<F> makeScopeExit(F&& f) {
    return ScopeExit<F>(std::forward<F>(f));
};

#define STRING_JOIN(arg1, arg2) STRING_JOIN2(arg1, arg2)
#define STRING_JOIN2(arg1, arg2) arg1 ## arg2

#define ON_SCOPE_EXIT(code) auto STRING_JOIN(scopeExit, __LINE__) = makeScopeExit([&](){code;})

Использование

{
    puts("a");
    auto _ = makeScopeExit([]() { puts("b"); });
    // More readable with a macro
    ON_SCOPE_EXIT(puts("c"));
} # prints a, c, b
13
задан Julian 26 September 2016 в 22:30
поделиться

1 ответ

Да, типичный ограничение на количество файлов cookie составляет ~ 4 КБ.

Добавьте шифрование, и вы получите <2k.

Ваш код правильный ... примите во внимание:

string user_item = "fsddfdfssdfsfdasdfsf";

System.Web.Security.FormsAuthenticationTicket ticket =
    new System.Web.Security.FormsAuthenticationTicket(1,
     " sdfasdf asdflasdfasd ",
    DateTime.Now, DateTime.Now.AddMinutes(30), false, user_item);

string encrypted_ticket = 
    System.Web.Security.FormsAuthentication.Encrypt(ticket);

HttpCookie auth_cookie = 
    new HttpCookie(System.Web.Security.FormsAuthentication.FormsCookieName, encrypted_ticket);

Результаты:

95ED981CFDF6AE506650E2AD01D2B52666AFC4895F0E19F14D82628C3F263EF1DA77F73BFD0284BEDCF815FBFB9AF00AF8875C61D01E27BF53C229F19C7CDE54FBC10AC478FAF02237DDC545AEF32BBA8EED88DBB09D671CD87E685E9FE05908CAE02EB05880DC1D230D67AEB0D7B0F258435D906EBD7F505DCCD738D94532E96363B13DA92060720476619672FEC670

По моему опыту, раздутые файлы cookie усекаются, а не обнуляются, ваша проблема, вероятно, в том, что JSON содержит символы, которые сделают ваш файл cookie искаженным, поэтому сломать это.

Убедитесь, что ваш json-файл разумного размера, затем попробуйте

string user_item = Server.UrlEncode(GetJsonOfLoggedinUser());

Убедитесь, что вы измеряете свои куки-файлы и не пытаетесь их подтолкнуть, они будут кусаться незаметно и злобно, когда вы захотите быть дома и смотреть «Остаться в живых» и пить текила. не весело.

8
ответ дан 1 December 2019 в 18:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: