2012-05-15 2 views
0

Привет, Я создаю форум, на котором пользователи могут входить в систему и отправлять сообщения ocmments на форуме, я хочу, чтобы имя пользователя было переменной сеанса, поэтому я могу получить его, когда они публикуют комментарий и вставляют имя пользователя в db и также для отображения приветственного пользовательского сообщения.переменная сеанса для имени пользователя

Ниже мой код Логин:

protected void Button1_Click(object sender, EventArgs e) 
{ 
    DataSet ds = new DataSet(); 
    localhost.Service1 myws = new localhost.Service1(); 
    ds = myws.GetUsers(); 
    foreach (DataRow row in ds.Tables[0].Rows) 
     if (txtusername.Text == System.Convert.ToString(row["username"]) && 
     txtpassword.Text == System.Convert.ToString(row["password"])) 
     { 
      System.Web.Security.FormsAuthentication.RedirectFromLoginPage(txtusername.Text, false); 
     } 
     else 
      Label3.Text = "Invalid Username/Password"; 
} 

ли я объявить переменную сеанса здесь?

Как:

Session["username"] = "username"; 

Также не уверен, что ввести, чтобы получить имя значения из БД

Благодаря

ответ

0

Вам не нужно использовать сеанс. Как только вы вызываете метод FormsAuthentication.RedirectFromLoginPage, внутри целевой страницы вы можете получить доступ к подключенному в данный момент пользователю из файла cookie аутентификации, который был испущен этим методом, используя User.Identity.Name.

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (User.Identity.IsAuthenticated) 
    { 
     string username = User.Identity.Name; 
     // ... 
    } 
} 

Чтобы узнать больше о том, как работает Аутентификация с помощью форм в ASP.NET Я приглашаю вас прочитать following article.

+0

Хорошо, я могу получить доступ к имени пользователя, которое прекрасно знает. Спасибо – user1389384

0

Вы уже используете проверку подлинности форм (FormsAuthentication.RedirectFromLoginPage(txtusername.Text, false)), что отлично. Следовательно, вам не нужно сохранять имя пользователя в сеансе, поскольку оно уже доступно через User.Identity.Name, как отметил Дарин.

Я написал две обучающие программы по проверке подлинности форм могут оказаться полезными:

Кроме того, рекомендуется использовать членство. Членство - это подсистема, встроенная в ASP.NET, которая обрабатывает учетные записи пользователей и предоставляет API для создания учетных записей, удаления учетных записей и т. Д. Короче говоря, вам не нужно писать весь этот код самостоятельно. И с помощью элементов управления веб-сайтом входа в систему, создания новых учетных записей, входа пользователей в систему, сброса паролей и т. Д. Все они довольно просты и содержат нуль-код. Для получения дополнительной информации см. Мой Membership tutorials.

Счастливое программирование!

+0

Спасибо, но я должен был упомянуть, мне сказали, что мне разрешено использовать только веб-службы для доступа к базе данных и запроса. – user1389384

+0

Это не исключает возможности использования членства. –

Смежные вопросы