Мы строим сайт, используя asp.net mvc. Мы хотим разрешить пользователю легко регистрироваться и создавать учетную запись. Существует хотя и очень специальная информация, которая будет зарегистрирована в его профиле, которую мы хотим показать ему * после завершения регистрации, и он регистрируется в первый раз.asp.net MVC, как перенаправить зарегистрированных пользователей, у которых нет профиля на страницу?
Логика - это какой бы ни был URL-адрес, если пользователь аутентифицирован и не имеет действительного профиля, перенаправляйте его на страницу «Создать профиль».
Весь ui будет зависеть от этих вариантов выбора. Какой подход следует использовать в рамках MVC, чтобы заставить этот рабочий процесс посетителя? Идеи, которые я могу придумать, требуют тонны дублирования кода в контроллерах и т. Д., Поэтому его явно плохая идея.
Мы используем членство для пользователей, но профиль - это наша собственная реализация (без провайдера профиля), которая будет подключать данные профиля к userId.
Я думаю, что его большие накладные расходы придется применять один и тот же actionfilter снова и снова, когда вы знаете, что всегда хотите это сделать. Я рассмотрю это как с базовым контроллером (тогда мне нужно будет сделать все мои контроллеры наследуемыми от этого вместо этого?) Или зайти в запрос на начало global.asax. –
Вы можете применить фильтр на контроллере или уровне действия. При применении на уровне контроллера это в основном то же самое, что и в базовом контроллере. Если у вас есть несколько разных фильтров, которые не всегда применяются, вы начнете понимать гибкость механизма фильтра.Только когда это действительно глобальное действие, я бы рекомендовал механизм базового контроллера. В вашем случае это может применяться. – tvanfosson
Спасибо за ваши ответы. Это действительно выглядит как нечто особенное, что мне нужно обеспечить соблюдение правил, куда бы ни вошли мои зарегистрированные пользователи. Я думаю, что это цена за дополнительную удобство использования, не слишком нагружая ваших пользователей при регистрации. Использование пользовательского базового контроллера требует, чтобы все контроллеры, которым необходимо выполнить эту проверку, должны были расширить пользовательский ctrler? Не проще было бы поставить логику в Global.asas, как предлагает xandy? –