Скрытие идентификатора пользователя от URL в MVC - PullRequest
0 голосов
/ 19 марта 2020

просто интересно, можно ли редактировать URL в MVC?

Например, я вхожу в профиль под идентификатором пользователя = 1, поэтому сгенерированный URL будет

https://something/Home/Profile?id=1

Поэтому, когда пользователь редактирует ссылку на

https://something/Home/Profile?id=2

Они смогут посетить другой профиль пользователя

Можно ли сделать это

https://something/Home/Profile

Так что пользователь не сможет редактировать ссылку

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

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 19 марта 2020

Вы можете сделать это для авторизованного профиля пользователя.

Сделать HttpGet Позвонить на https://something/Home/Profile и использовать Использовать Сессия для получения loggedin ИД пользователя.

Нельзя скрыть параметр запроса. Используйте POST вместо вызовов GET для удаления параметров из URL. Вы по-прежнему сможете увидеть параметр в сообщении запроса. Единственный способ безопасно скрыть параметр - это зашифровать его.

0 голосов
/ 19 марта 2020

Используйте приведенный ниже код, чтобы скрыть параметр url

    public ActionResult RedirectToProfile(string id)
    {
        TempData["UserId"] = id;
        return RedirectToAction("Profile");
    }

    public ActionResult Profile()
    {
        int id = Convert.ToInt32(TempData["UserId"]);
        //Do some stuff
        return View();
    }

Другое решение: вы можете зашифровать строку запроса и проверить ее на стороне контроллера.

Надеюсь, вам это поможет.

Отметьте это правильно, если это поможет вам.

...