Esempio n. 1
0
 public CompasSecurityContext(CompasIdentity identity,
 CompasPrincipal principal)
 {
     Identity = identity;
     Principal = principal;
 }
Esempio n. 2
0
        /// <summary>
        /// При успішній перевірці логіна і пароля створюється КОНТЕКСТ БЕЗПЕКИ
        /// КОНТЕКСТ БЕЗПЕКИ зберігається в AppDomain.CurrentDomain в змінну "SecurityContext",
        /// до якого мають доступ всі внутрішні проекти
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SaveBt_Click(object sender, EventArgs e)
        {
            string hash  = "";
            string login = LoginTB.Text;

            CompasLogger.Add(String.Format("Try to login: {0}", login), CompasLogger.Level.Info);
            hash = Helpers.Crypto.sha512encrypt(PasswordTB.Text + login);
            CompasLogger.Add(String.Format("Generated HASH"), CompasLogger.Level.Info);
            Compas.Logic.Security.CompasIdentity identity = new Compas.Logic.Security.CompasIdentity(login, hash);
            CompasLogger.Add(String.Format("Identity class created"), CompasLogger.Level.Info);
            CompasPrincipal principal = new CompasPrincipal(identity);

            AppDomain.CurrentDomain.SetData("Mode", ((Helpers.Item)(ModeCB.SelectedItem)).ID);
            CompasLogger.Add(String.Format("Mode saved: {0}", ((Helpers.Item)(ModeCB.SelectedItem)).Name), CompasLogger.Level.Info);
            if (login != "romin")
            {
                if (identity.IsAuthenticated == true)
                {
                    CompasLogger.Add(String.Format("Success login: {0}", login), CompasLogger.Level.Info);
                    CompasSecurityContext context = new CompasSecurityContext(identity, principal);
                    AppDomain.CurrentDomain.SetData("SecurityContext", context);
                    AppDomain.CurrentDomain.SetData("Mode", ((Helpers.Item)(ModeCB.SelectedItem)).ID);

                    //символьне значення
                    AppDomain.CurrentDomain.SetData("InstallationID", Compas.Logic.Config.InstallationIdentifyLogic.GenerateInstallationID());
                    //числове значення
                    AppDomain.CurrentDomain.SetData("InstallationIDInt", Compas.Logic.Config.InstallationIdentifyLogic.InstallationIDInt);
                    MainMDI form = new MainMDI();
                    this.Visible    = false;
                    PasswordTB.Text = "";
                    LoginTB.Text    = "";
                    this.Visible    = false;
                    form.ShowDialog();
                    this.Close();
                }
                else
                {
                    CompasLogger.Add(String.Format("Fail login: {0}", login), CompasLogger.Level.Warn);
                    MessageBox.Show("Не знайдено користувача з вказаним логіном і паролем");
                }
            }
            else
            {
                CompasSecurityContext context = new CompasSecurityContext(identity, principal);
                AppDomain.CurrentDomain.SetData("SecurityContext", context);



                //installationLogic.ClearInstallationID();
                CompasLogger.Add("Генерація ідентифікатора", CompasLogger.Level.Info);
                //Compas.Logic.Configuration.InstallationIdentifyLogic.ClearInstallationID();
                //символьне значення
                AppDomain.CurrentDomain.SetData("InstallationID", Compas.Logic.Config.InstallationIdentifyLogic.GenerateInstallationID());
                //числове значення
                AppDomain.CurrentDomain.SetData("InstallationIDInt", Compas.Logic.Config.InstallationIdentifyLogic.InstallationIDInt);
                MainMDI form = new MainMDI();
                this.Visible    = false;
                PasswordTB.Text = "";
                LoginTB.Text    = "";
                this.Visible    = false;

                form.ShowDialog();
                this.Close();
            }
        }