public void Configure(IConfigSectionNode node) { var appRoot = node.NavigateSection("/" + ErlConsts.ERLANG_CONFIG_SECTION); if (appRoot == null) throw new ErlException( StringConsts.CONFIGURATION_NAVIGATION_SECTION_REQUIRED_ERROR, ErlConsts.ERLANG_CONFIG_SECTION); // Configure global node variables ErlAbstractNode.s_DefaultCookie = new ErlAtom( appRoot.AttrByName(ErlConsts.ERLANG_COOKIE_ATTR) .ValueAsString(ErlAbstractNode.s_DefaultCookie.Value)); ErlAbstractNode.s_UseShortNames = appRoot.AttrByName(ErlConsts.ERLANG_SHORT_NAME_ATTR) .ValueAsBool(ErlAbstractNode.s_UseShortNames); ErlAbstractConnection.ConnectTimeout = appRoot.AttrByName(ErlConsts.ERLANG_CONN_TIMEOUT_ATTR) .ValueAsInt(ErlAbstractConnection.ConnectTimeout); // Configure local node and remote connections var cfg = new MemoryConfiguration(); cfg.CreateFromNode(appRoot); var root = cfg.Root; var nodes = root.Children .Where(n => n.Name.EqualsIgnoreCase(ErlConsts.ERLANG_NODE_SECTION)); var localNodes = nodes.Where(n => n.AttrByName(ErlConsts.CONFIG_IS_LOCAL_ATTR).ValueAsBool()).ToArray(); if (localNodes.Length != 1) throw new ErlException(StringConsts.ERL_CONFIG_SINGLE_NODE_ERROR, localNodes.Length); var localNode = localNodes[0]; // Create and configure local node s_Node = new ErlLocalNode(localNode.Value, localNode); // Configure connections to all remote nodes //m_AllNodes = nodes.Where(n => !n.AttrByName(ErlConsts.CONFIG_IS_LOCAL_ATTR).ValueAsBool()); m_AllNodes = root; }
public User Authenticate(Credentials credentials) { var sect = m_Config ?? App.ConfigRoot[CommonApplicationLogic.CONFIG_SECURITY_SECTION]; if (sect.Exists && credentials is IDPasswordCredentials) { var idpass = (IDPasswordCredentials)credentials; var usern = findUserNode(sect, idpass); if (usern.Exists) { var name = usern.AttrByName(CONFIG_NAME_ATTR).ValueAsString(string.Empty); var descr = usern.AttrByName(CONFIG_DESCRIPTION_ATTR).ValueAsString(string.Empty); var status = usern.AttrByName(CONFIG_STATUS_ATTR).ValueAsEnum<UserStatus>(UserStatus.Invalid); var rights = Rights.None; var rightsn = usern[CONFIG_RIGHTS_SECTION]; if (rightsn.Exists) { var data = new MemoryConfiguration(); data.CreateFromNode(rightsn); rights = new Rights(data); } return new User(credentials, credToAuthToken(idpass), status, name, descr, rights); } } return new User(credentials, new AuthenticationToken(), UserStatus.Invalid, StringConsts.SECURITY_NON_AUTHENTICATED, StringConsts.SECURITY_NON_AUTHENTICATED, Rights.None); }