powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Реализация глобального класс с настройками
25 сообщений из 35, страница 1 из 2
Реализация глобального класс с настройками
    #38190671
GavRYshA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется программа в которой необходимо сделать так сказать глобальный класс, который был бы доступен из других класов, но так чтобы не передать экземпляр класса настроек в каждый другой класс.
Возможно ли подобное сделать и как лучше?
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38190696
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GavRYshA,

DI контейнер решит проблемы отца русской демократии
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38190718
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилGavRYshA,

DI контейнер решит проблемы отца русской демократии

:-// В режиме сервис-локатора, что ли? Или зачем тут DI?
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38190720
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GavRYshAчтобы не передать экземпляр класса настроек в каждый другой класс

А зачем они нужны в каждом другом классе? В "другие" классы не настройки должны передаваться, а объекты, свойства которых от настроек зависят, или инициализированные настройками фабрики таких объектов. И да, DI контейнер тут не нужен вообще.
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38190939
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилGavRYshA,

DI контейнер, статический класс или синглетон решит проблемы отца русской демократииДобавил.
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38190941
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВерблюдИ да, DI контейнер тут не нужен вообще.Если он в проекте уже присутствует - наверное лучше через него. Тут вопрос - нужен ли он в этом проекте.
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38191238
sld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sld
Гость
сделать подобное возможно, а как лучше, на это есть много разных мнений, и каждый считает что его мнение лучше.
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38191338
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sldсделать подобное возможно, а как лучше, на это есть много разных мнений, и каждый считает что его мнение лучше.Правильное мнение одно: вариантов решения несколько, выбор зависит от решаемой задачи. Остальные мнения неправильные.
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38192561
GavRYshA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы.
Буду передавать экземпляр настроек в другие классы ибо пока не знаю как работает DI контейнер:)
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193011
Фотография Верблюд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GavRYshA,

1. Смысл передавать настройки целиком?
2. Да и сами настройки обычно передавать смысла нет. Например, вместо строки подключения обычно лучше отдавать фабрику, которая умеет создать соединение.
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193089
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GavRYshAСпасибо за ответы.
Буду передавать экземпляр настроек в другие классы ибо пока не знаю как работает DI контейнер:)Есть опасения, что в приложении может появиться второй экземпляр настроек? В противном случае статический класс или синглетон удобнее.
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193220
sld
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sld
Гость
я бы использовал статический класс и не парился.
хотя конечно по такому скудному описанию более конкретно сказать нельзя.
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193274
GavRYshA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вкратце расскажу принцип работы программы.
Когда открывается программа выскакивает окно для ввода логина и пароля для подключения к базе sql сервера. После ввода пароля программа получает ID пользователя под которым осуществился вход и открывается главное окно программы в котором и будет происходить вся работа. Этот ID я решил хранить в отдельном классе. Позже этот класс дополниться еще настройками, которые по окончанию работы запишутся в файл, чтобы при открытии по ID найти юзера в БД и заполнить поле "логин" автоматом.

Вкратце так)
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193344
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GavRYshA,

То есть строка соединения с базой не зависит от логина пользователя?)))
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193345
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. что мешает просто логин хранить?
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193487
GavRYshA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LelouchGavRYshA,

То есть строка соединения с базой не зависит от логина пользователя?)))

Да не зависит, пользователей будет много и я решил их закинуть всех в таблицу. От ID пользователя будет зависеть какие данные, стоящие под этим ID, он сможет редактировать.
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193578
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GavRYshA,

То есть, любой злоумышленник, получивший копию программы, сможет получить логин и пароль пользователя, под которым может делать все что угодно .) Что мешает использовать логины SQL сервера? У них кстати тоже есть ID, который можно получить и обработать.
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193677
GavRYshA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LelouchGavRYshA,

То есть, любой злоумышленник, получивший копию программы, сможет получить логин и пароль пользователя, под которым может делать все что угодно .) Что мешает использовать логины SQL сервера? У них кстати тоже есть ID, который можно получить и обработать.

не вижу разницы) зная логин и праль от SQL сервера тоже можно натворить многое.
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193786
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
using System;

namespace Application
{
    /// <summary>
    /// Глобальный класс с настройками
    /// </summary>
    public class ExecutionContext
    {
        private static ExecutionContext context;

        public static ExecutionContext Current
        {
            get { return context ?? (context = new ExecutionContext()); }
        }

        /// <summary>
        /// Пользователь, под которым осуществился вход
        /// </summary>
        public User User { get; set; }
    }

    public class User
    {
        public int ID { get; set; }
        public string Login { get; set; }
    }

    class Program
    {
        static void Main()
        {
            // Типа осуществили вход
            ExecutionContext.Current.User = new User { ID = 1, Login = "Vasya" };

            // Типа запускаем программу
            var instance = new Apllication.SomeNamespace.SomeClass();

            // Программа что-то делает
            instance.DoSomething();

            Console.ReadKey();
        }
    }
}

namespace Apllication.SomeNamespace
{
    using Application;

    public class SomeClass
    {
        public void DoSomething()
        {
            Console.WriteLine("User ID: {0}", ExecutionContext.Current.User.ID);
            Console.WriteLine("User Login: {0}", ExecutionContext.Current.User.Login);
        }
    }
}
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193795
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GavRYshA,

В Вашем случае их даже узнавать не надо, они написаны в самой программе.
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193799
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это все равно что на кредитке написать ее пин-код)
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193873
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchТо есть, любой злоумышленник, получивший копию программы, сможет получить логин и пароль пользователя, под которым может делать все что угодно .)Каким образом злоумышленник получит пароль пользователя?
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193947
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANALelouchТо есть, любой злоумышленник, получивший копию программы, сможет получить логин и пароль пользователя, под которым может делать все что угодно .)Каким образом злоумышленник получит пароль пользователя?
А зачем злоумышленнику логин и пароль пользователя, если в программе уже прописана строка подключения?
Или она вынесена в отдельный файл и зашифрована?

Что-то про это нигде сказано не было.

А имея строку подключения, с вариантом хождения в базу из под application account в клиент серверном приложении можно поиметь небольшую кучку проблем с безопасностью...
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38193999
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GavRYshAДа не зависит, пользователей будет много и я решил их закинуть всех в таблицу
я буду долго гнать велосипед (с)
...
Рейтинг: 0 / 0
Реализация глобального класс с настройками
    #38194076
Фотография _=ДОБРЫНЯ=_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раз уж заговорили о паролях, спрошу здесь.
В приложении объявляю переменную
Код: vbnet
1.
 Friend SqlBuilder As New SqlConnectionStringBuilder()


Логин и пароль к базе хранится в зашифровоном виде в отдельном файле. Когда приложение запускается - достается логин и пароль, расшифровывается и заполняется SqlBuilder необходимыми параметрами доступа. И потом SqlBuilder использую при отправке запроса к БД.
Вопрос: с точки зрения безопасности такой подход правильный или нужно было как-то делать по другому?
...
Рейтинг: 0 / 0
25 сообщений из 35, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Реализация глобального класс с настройками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]