Request.IsAuthenticated Return False todo el tiempo

Tengo un problema con mi Solicitud.IsAuthenticated siempre devolver falso. Estoy configurando el AuthCookie

 CurrentRequest currentRequest = null;

            if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
                && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
            {
                return Redirect(returnUrl);
            } else if (login.ValidateUser(acct.UserName, acct.Password))
            {
FormsAuthentication.SetAuthCookie(acct.UserName, true); //Edit on 11/12 @11:08
                currentRequest = new CurrentRequest();
                SessionWrapper.currentRequest = currentRequest;
                return RedirectToAction("About", "Home");
            }

// Esta es una página de inicio de sesión parcial que se supone que muestra el inicio de sesión o el cierre de sesión.

@using KMSS.Helper;

//esto siempre es falso

    @if (Request.IsAuthenticated) //Same issue with User.Identity.IsAuthenticated
    {
        if (SessionWrapper.currentRequest != null)
        {
            <text> Welcome <strong> @SessionWrapper.currentRequest.Username </strong>
                [@Html.ActionLink("Sign Off", "Logoff", "Account")]
            </text>
        } else {
           @: [ @Html.ActionLink("Sign In", "Login", "Account") ]
        }
    } else
    {

       @:[ @Html.ActionLink("Sign In", "Login", "Account") ]
  }

Después de leer en línea, creé una clase con un valor bool e intenté usar esa clase en su lugar. Sin embargo, estoy obteniendo que el objeto no está configurado como instancia de una nueva excepción de variable. Así es como lo configuré: // Página de inicio de sesión parcial

@model KMSS.Helper.ViewModelAuthenticate;

//esto siempre es falso

    @if (Model.IsAuthenticated) 
//The model is null even though I create create a reference in the Login Method i.e.     
(ViewModelAuthenticate auth = new ViewModelAuthenticate();
    {
        if (SessionWrapper.currentRequest != null)
        {
            <text> Welcome <strong> @SessionWrapper.currentRequest.Username </strong>
                [@Html.ActionLink("Sign Off", "Logoff", "Account")]
            </text>
        } else {
           @: [ @Html.ActionLink("Sign In", "Login", "Account") ]
        }
    } else
    {

       @:[ @Html.ActionLink("Sign In", "Login", "Account") ]
  }

// Aquí está la clase public class ViewModelAuthenticate {public bool IsAuthenticate {get; conjunto; }}

// Aquí es donde estoy inicializando la clase en el controlador

 public ActionResult Login()
        {
           ViewModelAuthenticate auth = new ViewModelAuthenticate();
            auth.IsAuthenticate = false;
            return View();
        }

// Probé esto dentro y fuera del inicio de sesión, y se llama antes de la vista de inicio de sesión parcial. Sin embargo, todavía obtengo que el objeto no está configurado como instancia de una nueva excepción de variable. ¿Qué estoy haciendo mal aquí? Su ayuda será apreciada.

//Showing the authentication section of the config file.

 <authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="2880" slidingExpiration="true" />
    </authentication>

Respuestas a la pregunta(3)

Su respuesta a la pregunta