ZainNabi Ответов: 2

В MVC 4 показывают информацию о своих пользователях


Я довольно новичок в MVC, и я хочу спросить, какова наилучшая практика отображения пользовательских данных при просмотре сайта. Я подаю в суд на MVC 4.

Предположим, что у меня есть фильтр [Authorize] на уровне всех контроллеров, который будет принудительно аутентифицировать пользователей, за исключением нескольких контроллеров действий (регистрация, логин, сброс пароля), к которым можно получить доступ анонимно.

Если у меня есть пользователь x, который войдет в систему и перейдет на страницу своей учетной записи, я хочу там показать конкретную информацию об учетной записи пользователя: имя, адрес электронной почты, компанию, телефон, тип подписки и так далее.

Если он перейдет к некоторым настройкам конкретного приложения, то сможет видеть/изменять только свои выигранные настройки.

Мой вопрос в основном таков: что я должен сделать для того, чтобы мое приложение поняло, что теперь вошел в систему пользователь x и на любой странице, которую он просматривает(где у него есть доступ), он может видеть только свои конкретные данные? Что - то вроде того, когда пользователь просматривает страницу учетной записи ... модель вернет: выберите все, где userID-current_logged_in_user. Я думаю, что могу использовать идентификатор пользователя для идентификации конкретных пользовательских данных, не так ли?

Эти данные будут храниться в базе данных SQL Server.

2 Ответов

Рейтинг:
2

Amir Hamza Md. Kayes

после успешного входа в систему, пожалуйста, сохраните идентификацию пользователя на
ВАР тож = нового созданного объекта genericidentity(билет.Имя);
Итак, вы должны следовать формам authenticaion, и это правильный подход к решению вашей проблемы.
Пожалуйста, посмотрите на процесс FormAuthetication в ASP.Net ниже приведен пример метода входа в систему.

var ticket = new FormsAuthenticationTicket(...............
              );

           var encryptedTicket = FormsAuthentication.Encrypt(ticket);
           var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket)
           {
               HttpOnly = true,
               Secure = FormsAuthentication.RequireSSL
           };
         


           var identity = new GenericIdentity(ticket.Name);
           
           HttpContext.Current.User = identity;


LORD.XIVI

Где разместить этот код? в контроллере входа в систему?

[no name]

Лучше вы создадите класс, а затем добавите его в глобальный файлер в глобальном файле.

Рейтинг:
0

Amir Hamza Md. Kayes

Лучше вы создадите класс, а затем добавите его в глобальный файл в Global.asax.


Richard Deeming

ПЯТЬ ЛЕТ слишком поздно, и с "решением", которое не имеет абсолютно никакого контекста или объяснения.

Придерживайтесь ответов на недавние вопросы.

[no name]

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