2014-09-21 3 views
0

Я довольно новичок в ASP.Net и C#, поэтому, пожалуйста, со мной.Как отобразить определенную строку записей из базы данных ASP.Net?

Таким образом, я создал форму, которая включает в себя регистрационную форму и форму входа в Visual Studio, используя стандартную веб-форму, которая уже предоставлена. Таким образом, код для регистрации и входа в систему уже предоставлен, и их введенные данные уже отправлены в базу данных членства по умолчанию.

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

Что я хотел бы знать, как я могу получить этого конкретного пользователя для доступа только к своим записям ?

Я понимаю использование FormView и DetailView, но они, похоже, отображают всю таблицу базы данных, в то время как мне нужен только этот конкретный вид. Я думал о попытке отобразить недавно добавленные записи, но это вызывает проблемы, потому что когда кто-то еще снова войдет в веб-сайт и просмотрит их данные, он, вероятно, в конечном итоге покажет другую запись.

+0

Вам необходимо посмотреть систему членства - только человек с разрешениями сможет просматривать/редактировать/удалять записи. – IrishChieftain

+0

@ IrishChieftain Как я могу это сделать? – sass

+0

@sass проверить мой ответ и сказать мне, если что-то неясно!:) – mybirthname

ответ

0

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

Session["_USERID"] = value; 

Вы можете создать свойство:

public Guid UserID 
{ 
    get 
     { 
      if(Session["_USERID"] != null) 
       return (Guid)Session["_USERID"]; 
     } 
    set 
     { 
      Session["_USERID"] = value; 
     } 
} 

Это свойство будет установлены в идент на входе в системе и установить нулевое значение на выход. Было бы неплохо иметь базовый класс, который каждая страница пользовательского интерфейса наследует и помещает это свойство в базовый класс. В этом случае, когда вы открываете текущую страницу пользователя, вы можете воспользоваться этим свойством.

+0

Мог ли я заменить UserID вместо имени пользователя? – sass

+0

@sass Вы можете хранить все, что захотите, но вы должны сохранить PK (уникальный индикатор) для таблицы пользователей. В этом случае, когда вы открываете страницу UserEdit (страница, которую пользователь нажимает для редактирования своего профиля), вы можете сделать запрос для извлечения всех пользовательских данных. Если вы сохраняете только имя, вы не можете всегда получать правильную информацию (у двух парней может быть такое же имя) – mybirthname

+1

@sass - Если вам потребуются уникальные имена пользователей, вы можете использовать их. Как правило, проще и надежнее использовать ключ. В некоторых средах имена пользователей могут меняться, например. адрес электронной почты или жертвы брака. В других случаях учетная запись может быть удалена, но не может быть удалена из-за требований к учету. Если записи привязаны к ПК, то у вас может быть новый пользователь с тем же именем пользователя, а не с грязью. – HABO