none
Вызов процедур SQL Server RRS feed

  • Вопрос

  • Здравствуйте.

    В базе данных SQL Server 2012 имеется таблица Users, в которой указываются пользователи и их права доступа. В Visual Web developer 2010 express вызываю хранимую процедуру, входным параметром которой является первичный ключ таблицы Users. При запуске приложения нужно запомнить имя пользователя, определить соответствующий ему идентификатор-первичный ключ таблицы Users и передать его в качестве параметра процедуры по нажатию кнопки.

    Понятия не имею, как это реализовать, нужна ваша помощь.


    С уважением, J.Lion

    • Перемещено ulcerModerator 18 июня 2012 г. 7:01 (От:Работа в среде Visual Studio)
    17 июня 2012 г. 20:30

Ответы

  • Добрый день.

    Id пользователя храните в переменной Session. Ну а вызов хранимых процедур будет зависить от технологии которой вы пользуетесь. Если с технологией доступа к данным еще не определились, то почитайте про Ado .Net, вот конкретно п вызова хранимых процедур.

    Т.е. логика у вас должна быть такая:

    1. При аутентификации пользователя в свойство Session["UserId"] вы записываете идентификатор пользователя

    2. Перед выполнением хранимой процедуры извлекаете из Session["UserId"] извлекаете идентификатор не забыв его привести к нужному типу данных.

    3. Вызываете хранимую процедуру передав в нее извлеченный на шаге 2 идентификатор.

    • Помечено в качестве ответа J.Lion 18 июня 2012 г. 4:17
    18 июня 2012 г. 4:07
    Отвечающий
  • Да, решения развертываются в IIS. На время разработки/отладки создается локальный тестовый сервер.

    • Помечено в качестве ответа J.Lion 18 июня 2012 г. 9:52
    18 июня 2012 г. 9:28
    Отвечающий

Все ответы

  • Добрый день.

    Id пользователя храните в переменной Session. Ну а вызов хранимых процедур будет зависить от технологии которой вы пользуетесь. Если с технологией доступа к данным еще не определились, то почитайте про Ado .Net, вот конкретно п вызова хранимых процедур.

    Т.е. логика у вас должна быть такая:

    1. При аутентификации пользователя в свойство Session["UserId"] вы записываете идентификатор пользователя

    2. Перед выполнением хранимой процедуры извлекаете из Session["UserId"] извлекаете идентификатор не забыв его привести к нужному типу данных.

    3. Вызываете хранимую процедуру передав в нее извлеченный на шаге 2 идентификатор.

    • Помечено в качестве ответа J.Lion 18 июня 2012 г. 4:17
    18 июня 2012 г. 4:07
    Отвечающий
  • Правильно я понимаю, что для работы используется IIS 7? Или какой-то другой web-сервер?

    С уважением, J.Lion

    18 июня 2012 г. 9:02
  • Да, решения развертываются в IIS. На время разработки/отладки создается локальный тестовый сервер.

    • Помечено в качестве ответа J.Lion 18 июня 2012 г. 9:52
    18 июня 2012 г. 9:28
    Отвечающий
  • При запуске приложения нужно проверить, какой пользователь в сети (если пользователь ранее пожелал, чтобы его запомнили). На данный момент переменная session["UserID"] получает значения только после входа в систему.

    Есть какое-нибудь событие, которое активируется при запуске приложения?

    И как обNULLить переменную session["UserID"] после нажатия ссылки "Выход" (пользователь выходит из системы, но приложение продолжает работать)?


    С уважением, J.Lion

    18 июня 2012 г. 9:57
  • Думаю уже слишком много вопросов для данной ветки, выделите в новый топик.
    18 июня 2012 г. 10:01
    Модератор
  • Я бы вам советовал что нибудь прочитать по ASP (как вам уже советовали в соседней ветке), т.к. то что вы напишите, оно конечно с нашей помощью заработает, но работать будет мягко говоря странно. Это произойдет из-за того, что конкретные косяки будут устранены, а вот вся система в целом (о которой мы не имеем ни малейшего представления) будет вести себя не так, как задумывали разработчики ASP .Net.

    Но, чтобы не переливать из пустого в порожнее, ваши конкретные проблемы.

    Как вы планируете "запоминать" что пользователь пожелал, чтобы его запомнили? Если еще не знаете, то могу для простоты порекомендовать печеньки они же Cookies. Посмотрите на это свойство вот здесь и здесь. (кстати, этот вопрос выходит за пределы данного топика, и я бы задал его в отдельном, ну да бог с ним).

    Как обнулить? Ну вы же сами написали, что надо делать: Session["UserID"] = null;

    18 июня 2012 г. 10:06
    Отвечающий
  • Я осознаю, что ASP .Net - очень продуманная среда, в которой можно выполнить мои задачи правильнее, чем я пытаюсь. С удовольствием бы почитал предложенное, но, к сожалению, времени совсем нет.

    Запоминание происходит автоматически, без каких-либо усилий с моей стороны. В новом проекте сразу была форма авторизации, в которой можно поставить флажок для запоминания пользователя.

    Нашёл, как обнулить - в конструкторе Site.master


    С уважением, J.Lion

    18 июня 2012 г. 10:24