/// <summary> /// Конструктор. /// </summary> /// <param name="identity">Определяем личность пользователя.</param> public CompasPrincipal(CompasIdentity identity) { // Инициализируем личность this._indentity = identity; // Инициализируем переменную только один раз. Если роль изменится в процессе выполнения приложения, то // изменения вступят в силу только после перезагрузки приложения. this._role = this.GetUserRoles(); }
public CompasSecurityContext(CompasIdentity identity, CompasPrincipal principal) { Identity = identity; Principal = principal; }
/// <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(); } }