.net Identity получить информацию о пользователе в Action Filter - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь создать фильтр действий, который будет перенаправлять зарегистрированного зарегистрированного пользователя на страницу, которая требует, чтобы он заполнил свой профиль, прежде чем им будет разрешен доступ к любым другим страницам на сайте.Я могу получить 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" }
            });
    }
}
...