Кэширование ролей в Cookie не работает - ASP.NET - PullRequest
0 голосов
/ 09 февраля 2012

Мой ролевой менеджер в web.confi выглядит следующим образом.

<roleManager enabled="true" 

    cacheRolesInCookie="true" 
    cookieName=".ASPR0LE3S" 
    cookieTimeout="115" 
    cookieSlidingExpiration="true" 
    cookieProtection="All" 
    createPersistentCookie="false" 
    defaultProvider="CustomizedRoleProvider">               

    <providers>                 
    <add name="CustomizedRoleProvider" 
    type="System.Web.Security.SqlRoleProvider" 
    connectionStringName="MyConn" 
    applicationName="/MyApp"/>              
    </providers>

</roleManager>

То, что я пытаюсь сделать, это хранить мои роли в Cookie.Предполагается, что код хранит его, но когда я просматриваю файлы cookie в FireFox, таких файлов с именем ASPR нет ... В чем может быть проблема?Я что-то упустил?

Ответы [ 3 ]

0 голосов
/ 10 февраля 2012

Из документов :

Если для свойства CacheRolesInCookie установлено значение true в файле Web.config, информация о роли каждого пользователя сохраняется в файле cookie. Когда управление ролями проверяет, находится ли пользователь в определенной роли, cookie-файл ролей проверяется перед вызовом поставщика ролей для проверки списка ролей в источнике данных. Файл cookie динамически обновляется, чтобы кэшировать последние проверенные имена ролей.

Роли не будут сохранены в файле cookie, пока вы не попытаетесь проверить роль в первый раз. Вполне вероятно, что вы просто входите в систему и проверяете файл cookie, не выполнив никаких действий, которые заставили бы поставщика ролей искать роли пользователя в источнике данных.

0 голосов
/ 25 марта 2017

Если вы используете .NET 4.5, он не будет работать, вам придется сохранить его самостоятельно. Смотрите пример кода здесь .

0 голосов
/ 10 февраля 2012

Прежде всего, кэшировать роли в куки не так безопасно, потому что кто-то может потенциально украсть / манипулировать этой информацией и использовать ее для смены ролей. Вот вопрос по этому поводу:

Может ли какой-нибудь хакер украсть куки у пользователя и войти под этим именем на веб-сайте?

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

Если у вас слишком много ролей, браузер может их не сохранить или другие файлы cookie не смогут сохранить. В некоторых случаях я вижу странное поведение в браузере, такое как сбой или появление белых страниц из-за этого предела достижения cookie, думаю

Попробуйте установить минимально возможную информацию о файлах cookie.

Дополнительная информация об ограничениях на использование файлов cookie:
http://www.nczonline.net/blog/2008/05/17/browser-cookie-restrictions/
Каковы текущие ограничения на использование файлов cookie в современных браузерах?

Роли в файле cookie смогут просматривать их в зашифрованном виде после того, как пользователь вошел в систему.

...