Передайте и проверьте данные между различными страницами бритвы - PullRequest
0 голосов
/ 17 декабря 2018

Я использую технологию Asp.net Core2.1 Razor Pages.

Я хочу спросить о передаче и проверке параметров между страницами Razor.пожалуйста, не то, чтобы я спрашивал о концепции, а не о кодировании:

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

пользователь входит на страницу управленияиспользуя этот URL:

https://localhost:44368/blogs/1/settings

, как вы видите, идентификатор блога находится в URL:

public async Task<IActionResult> OnGetAsync(int? id)
{
        // here i check that the blog is exist by the id
        // and i check if the current user own the blog            
}

, тогда на странице настроек у меня есть ссылки на несколько страниц, например(статьи), и пользователь может управлять этими статьями.

https://localhost:44368/blogs/1/settings/articles

, как вы все еще видите, у меня есть идентификатор блога в URL:

public async Task<IActionResult> OnGetAsync(int? id)
{
    // now this function in the articles page
    // again i check if the blog is exist
    // and again i check if the current user can manage the blog or not                             
}

это правильная и хорошая практика?проверять и проверять на каждой странице

или я должен проверять только когда я захожу на страницу настроек?

или я должен подумать, чтобы подход проверял только один раз, когда пользователь заходит на страницу настроек,тогда пользователь не может перейти на другие страницы на основании первой проверки!

1 Ответ

0 голосов
/ 17 декабря 2018

Хорошей практикой является сохранение веб-конечных точек без состояний .

Таким образом, ваш подход к передаче идентификатора каждому дочернему действию и проверке этого ввода верен.

Чтобы реализовать другой подход, в котором вы проверяете идентификатор только один раз, вам необходимо передать состояние между действиями, например, как состояние сеанса.Этот подход менее гибок.Может быть, вы захотите когда-нибудь в будущем открыть настройки с другой страницы, отличной от информации блога?

Также помните, что только потому, что пользователь не видит определенную ссылку на странице, ничто не мешает ему войтинапример, https://localhost:44368/blogs/1/settings/articles прямо в адресную строку браузера.Так что в любом случае вам потребуются некоторые проверки для каждого действия.

...