C # Заполнить раскрывающийся список на основе данных из cookie - PullRequest
0 голосов
/ 08 июня 2011

Я посмотрю, смогу ли я объяснить это достаточно ясно. У меня есть 2 веб-формы. Одна из них - это страница входа в систему для проверки подлинности с помощью форм, а другая форма отображает задачи с нескольких серверов. Я создаю cookie, в котором хранится идентификатор пользователя. Вот код моего cookie:

        FormsAuthenticationTicket tkt = new FormsAuthenticationTicket(1, txtUser.Text, DateTime.Now, DateTime.Now.AddMinutes(120), true, rdr.GetInt32(0).ToString(), FormsAuthentication.FormsCookiePath);
        string hash = FormsAuthentication.Encrypt(tkt);
        HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);

В другой форме у меня есть раскрывающийся список, в котором отображаются все серверы по IP-адресу сервера из таблицы «Серверы».

public void Populate()
        {
            SqlConnection myConnection1 = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString);
            myConnection1.Open();

            SqlCommand cmd1 = new SqlCommand("SELECT ServerIP FROM Servers", myConnection1);
            SqlDataReader dropReader;
            dropReader = cmd1.ExecuteReader();

            drpChoose.DataSource = dropReader;
            drpChoose.DataTextField = "ServerIP";
            drpChoose.DataValueField = "ServerIP";
            drpChoose.DataBind();
        }

Я звоню Заполнить в загрузке страницы. У меня есть другая таблица, в которой хранятся разрешения. У него есть UserID, ServerID и Permission (чтение или выполнение). Предположим, что UserID 1 связан только с ServerID 1, который имеет IP 192.168.0.10. Как я могу получить этот IP-адрес сервера для отображения в раскрывающемся списке? Я вполне уверен, что если я передам файл cookie во вторую форму, я смогу извлечь из него идентификатор пользователя, но я не знаю, с чего начать.

Я прошу прощения, если я не дал достаточно информации. Я предоставлю больше, если это будет необходимо.

1 Ответ

1 голос
/ 08 июня 2011

Похоже, вам нужно будет выполнить объединение с таблицей разрешений, например,

SELECT ServerIP from Servers s, Permissions p where p.serverid = s.serverid and p.userid = :userIdFromCookie

Затем вам нужно будет передать идентификатор пользователя из файла cookie в метод Populate и использовать DbParameter.передать значение в вашу команду Sql.

что-то вроде (кстати, это псевдокод, так как я не на своем компьютере разработчика)

cmd.AddInParameter(":userIdFromCookie",dbType.AnsiString, Request.Cookies["mycookie"]["userid"])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...