Exemple #1
0
        /// <summary>
        /// Tries to load the specified configuration file, creating a default
        /// configuration file if the specified one does not exist.
        /// </summary>
        /// <param name="fname">the name of the configuration file to load</param>
        /// <returns>a <see cref="RoleGroupConfig" /> object representing the loaded file</returns>
        public static RoleGroupConfig LoadConfigOrDefault(string fname)
        {
            var confFolder = AuthServerConfiguration.GetFullPath(AuthServerConfiguration.ConfigDir);
            var privFile   = Path.Combine(confFolder, fname);

            var cfg = File.Exists(privFile) ? Load(privFile) : null;

            if (RoleGroupInfo.HighestRole == null ||
                RoleGroupInfo.HighestRole.IsStaff)
            {
                cfg = new RoleGroupConfig
                {
                    RoleGroups = RoleGroupInfo.CreateDefaultGroups().ToArray()
                };
                cfg.SaveAs(fname, confFolder);
            }

            return(cfg);
        }
        private AuthServerConfiguration _authServerConfiguration4;                            //detect changes

        public HomeController(
            ILogger <HomeController> logger,

            IOptions <AuthServerConfiguration> option1,
            IOptionsSnapshot <AuthServerConfiguration> option2,
            IOptionsMonitor <AuthServerConfiguration> option3,
            IOptionsMonitor <AuthServerConfiguration> option4
            )
        {
            _logger = logger;

            _authServerConfiguration1 = option1.Value; // var authorityUrl = _authServerConfiguration1.Authority
            _authServerConfiguration2 = option2.Value; // var authorityUrl = _authServerConfiguration2.Authority
            _authServerConfiguration3 = option3;       // var authorityUrl = _authServerConfiguration3.CurrentValue.Authority


            _authServerConfiguration4 = option4.CurrentValue; // var authorityUrl = _authServerConfiguration4.Authority
            option4.OnChange(config =>
            {
                _authServerConfiguration4 = config;
                _logger.LogInformation("The greeting configuration has been updated");
                // signalR push code here
            });
        }