Я пытаюсь создать фильтр действий, который будет перенаправлять зарегистрированного зарегистрированного пользователя на страницу, которая требует, чтобы он заполнил свой профиль, прежде чем им будет разрешен доступ к любым другим страницам на сайте.Я могу получить user id
из блока кода Action Filter
, но есть ли способ использовать id
для получения информации о пользователе из таблицы Identity User
?Я расширил таблицу идентификаторов по умолчанию, включив в нее столбец Status
, и хотел бы проверить этот столбец.Вот что у меня пока так:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// Prevent redirect for unauthenticated users
if (!filterContext.HttpContext.User.Identity.IsAuthenticated)
{
return;
}
// Prevent redirect if user is already on complete registration page
if (filterContext.ActionDescriptor.ControllerDescriptor.ControllerName == "Account" &&
filterContext.ActionDescriptor.ActionName == "CompleteRegistration")
{
return;
}
var userId = filterContext.HttpContext.User.Identity.GetUserId();
var user = // How can I get user details here?
if (user.Status.Equals(AccountStatus.Registered))
{
filterContext.Result = new RedirectToRouteResult(
new RouteValueDictionary
{
{ "controller", "Account" },
{ "action", "CompleteRegistration" }
});
}
}