【问题标题】:Database permissions in MVC with NHibernate使用 NHibernate 的 MVC 中的数据库权限
【发布时间】:2012-06-20 12:49:48
【问题描述】:

我正在使用 Fluent NHibernate 开发 Intranet MVC Web 应用程序。

众所周知,创建必要的ISessionFactory 很繁重,因此应该只做一次。因此,我在 Application_Start 期间在 Global.asax 文件中创建它,然后将其缓存在应用程序中以备将来使用。

问题是我只想向已经拥有数据库权限的用户授予访问权限。

理论上可以通过在连接字符串中定义 Integrated Security=SSPI 来解决(而不是通过提供 SQL 用户名和密码)。

但是,这会在Fluently.Configure 期间引发错误,因为配置发生在Application_Start 期间,该配置由托管应用程序的进程运行,该进程没有连接到数据库的权限。

我该如何解决这个问题?

【问题讨论】:

    标签: asp.net-mvc-2 fluent-nhibernate intranet sessionfactory


    【解决方案1】:

    你可以在BeginRequest而不是Application_Start中初始化它:

    private static bool _initialized = false;
    private static object _syncRoot = new object();
    
    protected void Application_BeginRequest(object source, EventArgs e)
    {
        if (_initialized)
        {
            return;
        }
    
        lock (_initialized)
        {
            if (_initialized)
            {
                return;
            }
    
            // Initialize the session factory here and cache it
    
            _initialized = true;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-30
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 2012-08-09
      • 1970-01-01
      相关资源
      最近更新 更多