получить имя пользователя в соответствии с его текущим IP-адресом SQL - PullRequest
0 голосов
/ 15 декабря 2010

я пытаюсь Select имя пользователя на основе его IP-адреса входа в систему, который сохранялся при входе в систему,

У меня есть две таблицы

  1. Пользователи
  2. сессий

вот мое заявление sql

Select users.username from users,sessions where user_id = se_user AND se_ip = '" + HttpContext.Current.Request.UserHostAddress + "';

Я использую этот оператор SQL внутри DetailsView на DataSource Configurations, но, похоже, он не работает

в чем проблема?

Ответы [ 2 ]

3 голосов
/ 15 декабря 2010

Ну, для начала, вы должны использовать правильный JOIN вместо старой версии. И похоже, что вы все время сравниваете se_ip с одной и той же строкой. Если вы определяете это утверждение в C #, я думаю, у вас есть проблема с вашими цитатами. В SQL простые кавычки ' определяют строку, в C # двойные кавычки " определяют строку. Так что в C # вы должны определить ваш запрос следующим образом:

"Select users.username 
from users JOIN [sessions] 
ON users.[USER_ID] = [sessions].se_user 
where se_ip = '" + HttpContext.Current.Request.UserHostAddress + '"
2 голосов
/ 15 декабря 2010

Я буду осторожен с использованием IP-адреса, поскольку большинству пользователей из дома или в офисе назначен динамический IP-адрес. В течение некоторого времени он, скорее всего, будет таким же, но если они получат новый адрес (сброс модема, отключение на некоторое время и т. Д.), Вы больше не сможете доверять этому IP-адресу.

Я предполагаю, что вы уже включили это, но на случай, если кто-нибудь придет и решит использовать эту идею, он должен это знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...