Столбцы аудита NHibernate и SetSessionAuth - PullRequest
0 голосов
/ 14 апреля 2010

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

Когда мы конвертируем в NHibernate, он создает совершенно новый сеанс и поднимает все когда мы пытаемся выполнить заданную аутентификацию сеанса, поэтому мы отключили установленную аутентификацию сеанса ...

Теперь мы пытаемся найти способ заставить NHibernate позволить нам «устанавливать авторизацию сеанса» без повторного использования сеанса, чтобы мы могли использовать наш существующий материал столбца аудита на основе триггера как с устаревшими приложениями, так и с нашими новыми Приложения NHibernate.

Это не идеальное решение или лучший способ сделать это, но возможно ли это?

Я надеялся, что существует альтернативный интерфейс, обеспечивающий такой доступ.

Кто-нибудь знает, как это сделать, или вы можете указать мне на хорошие подсказки?

Спасибо

Eric-

1 Ответ

1 голос
/ 14 апреля 2010

Вы можете наследовать DriverConnectionProvider и делать все, что вам нужно при создании соединения.

Пример:

public class MyConnectionProvider : DriverConnectionProvider
{
    public override IDbConnection GetConnection()
    {
        var connection = base.GetConnection();
        var sessionAuthCommand = connection.CreateCommand();
        sessionAuthCommand.CommandText = "set session authorization " + GetUser();
        sessionAuthCommand.ExecuteNonQuery();
        return connection;
    }
}

А затем настройте NHiberate, чтобы использовать его в качестве поставщика соединения.

(GetUser - метод, в котором вы предоставите правильного пользователя)

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