سؤال

وأنا أبحث عن أفضل وسيلة لتكوين NHibernate المصادقة على التطبيق ASP.net الكلاسيكية التي تستخدم NHibernate الجحر لإدارة جلسات NH.
كيف يمكنني الحصول عليه لتسجيل interecptors تلقائيا؟

هل كانت مفيدة؟

المحلول

وOK، هنا هو ما انتهى به.
لأول مرة أقوم بإعداد SharedEngineProvider في الحدث global.asax Application_Start.

protected void Application_Start(object sender, EventArgs e)
{
     InitializeValidator();
}

private void InitializeValidator()
{
            NHibernateSharedEngineProvider provider = new NHibernateSharedEngineProvider();
            NHVConfigurationBase config = new NHVConfigurationBase();
            config.Properties[Environment.ApplyToDDL] = "true";
            config.Properties[Environment.AutoregisterListeners] = "true";
            config.Properties[Environment.ValidatorMode] = ValidatorMode.UseAttribute.ToString();
            config.Mappings.Add(new MappingConfiguration(Assembly.GetAssembly(typeof(User)).FullName, null));
            provider.GetEngine().Configure(config);
            Environment.SharedEngineProvider = provider;
 }

ومنذ الجحر اعتراض طلبات لصفحات لبدء الدورة NH قررت ربط على الحدث PreInit لدمج المصادقة مع الدورة NH الحالية. لدي صفحة قاعدة مخصصة (ممارسة جيدة على ما أظن) لذلك أضفت هذا الأسلوب هناك:

protected void Page_PreInit(object sender, EventArgs args)
{
    Configuration cfg = new BurrowFramework().BurrowEnvironment.GetNHConfig("PersistenceUnit1");
    ValidatorInitializer.Initialize(cfg);
}

وحتى الآن يبدو أن تعمل جيدا.

لتحصل على إشارة إلى محرك مدقق أنا باستخدام:

validatorEngine = Environment.SharedEngineProvider.GetEngine();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top