Я пытаюсь узнать о 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
, но не работал