Добавление пользователя в сессию - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь узнать о MVC и Session. Что мне нужно, так это при загрузке приложения, если не зарегистрирован пользователь, покажите страницу входа, а если пользователь вошел, покажите домашнюю страницу.

Я сделал эту обертку для сеансового класса

public class SessionWrapper
{
    private static SessionWrapper instance;
    public static SessionWrapper Instance
    {
        get { return instance ?? (instance = new SessionWrapper()); }
    }

    private SessionWrapper()
    {
    }

    public void Destroy()
    {
        HttpContext.Current.Session.Clear();
        HttpContext.Current.Session.Abandon();
        FormsAuthentication.SignOut();
    }


    public UserInfo CurrentUser
    {
        get
        {
            return (UserInfo)HttpContext.Current.Session["CurrentUser"];
        }
        set
        {
            HttpContext.Current.Session.Add("CurrentUser", value);
        }
    }

и это BaseController

 public class BaseController : Controller
    {
        protected Services Services { get; private set; }
        protected new SessionWrapper sessionWrapper {get { return SessionWrapper.Instance; }}
        protected ConfigWrapper Config { get { return ConfigWrapper.Instance; } }

        public BaseController()
        {
            Services = new Services();
        }
    }
}

на данный момент, это то, что я сделал на мой взгляд

 <ul class="nav navbar-nav navbar-right">
                        @if(sessionWrapper.CurrentUser == null)
                        {
                            <li>@Html.ActionLink("Register", "Register", "Account")</li>
                            <li>@Html.ActionLink("Login", "Login", "Account")</li>
                        }

Пользователь добавляется в sessionWrapper после входа в систему.

Проблема в том, что sessionWrapper не распознается на моей странице. Как я могу использовать это? Я пытался с @using UserInterface.Wrappers, но не работал

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...