MembershipProvider и Caching (NHibernate) - PullRequest
       3

MembershipProvider и Caching (NHibernate)

0 голосов
/ 27 апреля 2011

Привет, у меня есть свой собственный поставщик членства, в котором я открываю NHibernate-сессию в конструкторе:

public class OwnMembershipProvider : MembershipProvider
{

    protected NHibernate.ISession HibSession;

    public OwnMembershipProvider ()
    {
        HibSession = NHibernateTools.OpenSession();
    }
//...

Я выяснил, если я установлю точку останова в конструкторе, она вызывается только один раз при запуске приложения. Это вызывает у меня головную боль, так как один и тот же NHibernate-Session используется для каждого запроса, что приводит к забавным вещам, таким как «о, я не могу изменить свой пароль» (NHibernate-Session возвращает кэшированного пользователя при вызове ValidateUser(), который все еще содержит старый пароль).

Как я могу заставить каркас реконструировать MemberShipProvider для каждого отдельного запроса? Или как это сделать иначе?

Спасибо за любые чаевые

1 Ответ

0 голосов
/ 27 апреля 2011

Открытие отдельной сессии в каждом методе звучит как хорошая идея.А еще лучше, откройте один сеанс и транзакцию для каждого HTTP-запроса, а затем подтвердите транзакцию после завершения запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...