public void GetProviderTest() { string path = Assembly.GetAssembly(typeof(IPrincipalProvider)).Location; ConfigurationFile configuration = new ConfigurationFile(path); Assert.IsNotNull(configuration, "获取配置文件出错"); IPrincipalProvider iprovider = (IPrincipalProvider)((IList<IPrincipalProvider>)configuration.GetSection("principal-providers"))[0]; Assert.IsInstanceOfType(iprovider, typeof(DBPrincipalProvider), "提供者不为DBPrincipalProvider类型"); DBPrincipalProvider provider = (DBPrincipalProvider)iprovider; Assert.IsNotNull(provider.ConnectionString, "连接字符串未获取到"); Assert.AreEqual(@"Data Source=.;Initial Catalog=CrystalwallTest;User ID=sa;Password=123456;", provider.ConnectionString.Trim(), "连接字符串不是期望的"); Assert.IsNotNull(provider.Principaltable, "身份表未获取"); Assert.AreEqual("principal", provider.Principaltable, "身份字符不是期望的"); Assert.IsNotNull(provider.ConnProvider, "默认连接提供者为null"); Assert.AreEqual("System.Data.SqlClient", provider.ConnProvider, "默认连接提供者不是默认的System.Data.SqlClient"); Assert.IsNotNull(provider.Foreignpermission, "默认身份权限中间表权限外键为null"); Assert.AreEqual("permission_id", provider.Foreignpermission, "默认身份权限中间表权限外键名不是默认的permission_id"); Assert.IsNotNull(provider.Foreignuser, "默认身份权限中间表身份外键为null"); Assert.AreEqual("principal_id", provider.Foreignuser, "默认身份权限中间表身份外键名不是默认的principal_id"); Assert.IsNotNull(provider.Foreigntable, "默认身份权限中间表为null"); Assert.AreEqual("principal_permission", provider.Foreigntable, "默认身份权限中间表名不是默认的principal_permission"); Assert.IsNotNull(provider.Permissiontable, "权限表名未获取到"); Assert.AreEqual("permission", provider.Permissiontable, "权限表名不是permission"); Assert.IsNotNull(provider.UserIndentity, "默认身份表的标识列未获取到"); Assert.AreEqual("pname", provider.UserIndentity, "默认身份表的标识列不是默认的pname"); }
/// <summary> /// 使用普通配置文件初始化的方法,此方法只能在整个应用程序中被调用一次 /// </summary> /// <param name="configPath">程序集路径</param> public static void Init(string configPath) { if (configFile != null) throw new ConfigurationException("", "系统已经初始化,不能再次进行初始化"); configFile = new ConfigurationFile(configPath); InitProviderAndStorage(); }
/// <summary> /// 使用web根配置文件初始化的方法,此方法只能被整个应用程序调用一次 /// </summary> public static void InitWeb() { if (configFile != null) throw new ConfigurationException("", "系统已经初始化,不能再次进行初始化"); configFile = new ConfigurationFile(WebConfigurationManager.OpenWebConfiguration(null)); InitProviderAndStorage(); }
/// <summary> /// 清除数据,用于测试目的 /// </summary> public static void Clear() { Storage = null; PrincipalProviders.Clear(); ClearCurrentToken(); configFile = null; }