powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Параметры ХП
15 сообщений из 40, страница 2 из 2
Параметры ХП
    #35879252
Kommunar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks-samKommunarPC_2,

Ето надо будет в каждую процу дописывать проверку, немного не удобно.

Вопрос остается открытым.
Вам в нужном направлении указали. В каждой ХП.

В каждой ХП, а если учесть человеческий фактор, просто забыли программисты прописать, проца будет запускаться как угодно?
...
Рейтинг: 0 / 0
Параметры ХП
    #35879357
PC_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя есть семантическая связка Операция/Проверка прав.

Тоесть проверка прав завязана на операции ( Например Чтение, Редактирование ).

Проверка прав не может быть завязана на типах переданных параметров в зоопарк процедур.
...
Рейтинг: 0 / 0
Параметры ХП
    #35879377
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему нельзя сделать все по-человечески: разграничением прав доступа на запуск хп на стороне сервера, через роли?
...
Рейтинг: 0 / 0
Параметры ХП
    #35879413
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zzПочему нельзя сделать все по-человечески: разграничением прав доступа на запуск хп на стороне сервера, через роли?
+100
...
Рейтинг: 0 / 0
Параметры ХП
    #35879422
Kommunar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zz,

да можно никто не спорит.

Тут идея в другом:

- есть группы пользователей, у групп свои ограничения на запуск той или иной процы, ограничения хранятся в базе.

проца может запуститься от конкретной группы и но с разными значениями пармаетра, т.е.

если в проце есть параметр @IdPaymant, то одна группа может запустить процу со значениями параметра 1,2,3 и ни с какими другими, то другая например только с 4.

Надеюсь понятно объяснил.

Поетому и ищу пути распарсить строку вызова ХП по значениям параметр - значение, чтоб потом проверить правильно ли пользователь запускает ее.
...
Рейтинг: 0 / 0
Параметры ХП
    #35879440
PC_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты скажи кто у тебя эту строку формирует ?
Код: plaintext
1.
"[EditGroup] 1,'qwer','qwer'"
...
Рейтинг: 0 / 0
Параметры ХП
    #35879463
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторограничения хранятся в базе
так вот и непонятно зачем их хранить в базе, если можно средствами sql server-а разделить доступ.
зачем велосипед строить?
...
Рейтинг: 0 / 0
Параметры ХП
    #35879467
Kommunar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PC_2,


Ну шаблоя пишу, а парметры подставляются при вооде пользователдем данных с формы.

Код: plaintext
1.
"[EditGroup] TextBox1.Text,TextBox2.Text,TextBox2.Text"

Типа этого.
...
Рейтинг: 0 / 0
Параметры ХП
    #35879478
Kommunar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
winsky!авторограничения хранятся в базе
так вот и непонятно зачем их хранить в базе, если можно средствами sql server-а разделить доступ.
зачем велосипед строить?

Можно пример или где посмотреть почитать, я что то такого не встречал.
...
Рейтинг: 0 / 0
Параметры ХП
    #35879490
PC_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KommunarPC_2,


Ну шаблоя пишу, а парметры подставляются при вооде пользователдем данных с формы.

Код: plaintext
1.
"[EditGroup] TextBox1.Text,TextBox2.Text,TextBox2.Text"

Типа этого.

Это большая дыра по секьюрити.
Вот так формируй свои параметры.
Тогда параметры будут лежать там где нужно и их не нужно будет парсить.

Код: plaintext
1.
2.
3.
4.
5.
SqlCommand command = new SqlCommand("AddCardTransaction", m_connection);
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.AddWithValue("@TypeName", TypeName);
            command.Parameters.AddWithValue("@TransactionID", TransactionID);
            command.ExecuteNonQuery();
...
Рейтинг: 0 / 0
Параметры ХП
    #35879540
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kommunar, ну тогда тебе надо как-то централизовывать вызов своих процедур. Можно взять какой-нибудь BlToolkit и "перекроить" его под себя, но это чересчур брутально и требует знания IL.
Можно слепить некий полумер, типа такого:

Код: plaintext
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.
        /// <summary>
        /// Универсмальный вызов хранимок.
        /// </summary>
        /// <param name="method">Вызывающий метод</param>
        /// <param name="values">Параметры</param>
        /// <returns></returns>
	    public static SqlCommand GenerateCommand(MethodInfo method, object[] values)
	    {

	        SqlParameter prm;

	        string SPName = method.Name;
	        SqlCommand cmd = new SqlCommand(SPName, ConnectionString)
	                             {CommandType = CommandType.StoredProcedure};

	        ParameterInfo[] prms = method.GetParameters(); //Тут имена параметров

	        for (int i = 0; i < prms.Length; i++)
	        {
	            prm = cmd.Parameters.AddWithValue("@" + prms[i].Name, values[i]);
	            if (prms[i].IsOut) prm.Direction = ParameterDirection.Output;
	        }

	        //Тут вызов некоей универсальной функции проверки. Передаем ей имя ХП,
	        //массив имен параметров, массив значений параметров. Можно при желании слепить структуру.
	        Verify(SPName, prms, values);

	        return cmd;
	    }

Использование:
Код: plaintext
1.
2.
3.
4.
        public static void EditGroup(int IdGroup, int CaptionGroup, int DescribeGroup)
        {
            SqlCommand cmd = Commands.GenerateCommand((MethodInfo)MethodBase.GetCurrentMethod(), new object[] { IdGroup, CaptionGroup, DescribeGroup });
            Commands.Execute(cmd);
        }

Писалось на коленке, так что возомжны артефакты.
...
Рейтинг: 0 / 0
Параметры ХП
    #35879567
Kommunar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PC_2KommunarPC_2,


Ну шаблоя пишу, а парметры подставляются при вооде пользователдем данных с формы.

Код: plaintext
1.
"[EditGroup] TextBox1.Text,TextBox2.Text,TextBox2.Text"

Типа этого.

Это большая дыра по секьюрити.
Вот так формируй свои параметры.
Тогда параметры будут лежать там где нужно и их не нужно будет парсить.

Код: plaintext
1.
2.
3.
4.
5.
SqlCommand command = new SqlCommand("AddCardTransaction", m_connection);
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.AddWithValue("@TypeName", TypeName);
            command.Parameters.AddWithValue("@TransactionID", TransactionID);
            command.ExecuteNonQuery();


Почему дыра?
...
Рейтинг: 0 / 0
Параметры ХП
    #35879635
PC_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KommunarPC_2KommunarPC_2,


Ну шаблоя пишу, а парметры подставляются при вооде пользователдем данных с формы.

Код: plaintext
1.
"[EditGroup] TextBox1.Text,TextBox2.Text,TextBox2.Text"

Типа этого.

Это большая дыра по секьюрити.
Вот так формируй свои параметры.
Тогда параметры будут лежать там где нужно и их не нужно будет парсить.

Код: plaintext
1.
2.
3.
4.
5.
SqlCommand command = new SqlCommand("AddCardTransaction", m_connection);
            command.CommandType = CommandType.StoredProcedure;
            command.Parameters.AddWithValue("@TypeName", TypeName);
            command.Parameters.AddWithValue("@TransactionID", TransactionID);
            command.ExecuteNonQuery();


Почему дыра?

Читай про взлом через иньекции.
...
Рейтинг: 0 / 0
Параметры ХП
    #35879674
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kommunar
...

Почему дыра?
...
Рейтинг: 0 / 0
Параметры ХП
    #35879840
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kommunar
Можно пример или где посмотреть почитать, я что то такого не встречал.
в BOL - security [SQL Server]. там много всего написано.

Модератор: Тема перенесена из форума "C#.NET".
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Параметры ХП
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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