Je travaille sur un site Web, dans ASP.NET MVC 4, où un utilisateur est redirigé vers une page d'accueil lorsqu'il accède pour la première fois au site Web, un peu comme Forbes. Il utilise actuellement des cookies, et lorsqu'ils accèdent à n'importe quelle page du site, il vérifie s'ils ont un cookie appelé «Visité». S'ils le font, cela leur permet d'accéder au site, mais sinon cela les redirige vers la page d'accueil, où ils obtiennent le cookie et un lien leur permet de continuer vers le site qu'ils espéraient.

Serait-ce la méthode la plus efficace pour créer une page d'accueil, ou y a-t-il une méthode plus propre ou plus sûre que je pourrais utiliser?

0
Nick Fulton 29 déc. 2015 à 01:31

2 réponses

Meilleure réponse

Je pense que l'utilisateur ne doit pas être authentifié, non? Dans ce cas, vous pouvez gérer si cet utilisateur a déjà visité votre site, en utilisant localStorage, les informations resteront dans le navigateur, de cette façon, vous ne devez pas envoyer et recevoir de cookies.

1
Pedro Benevides 28 déc. 2015 à 22:53

Donc, je l'ai fait fonctionner avec des cookies. J'ai fini par créer un attribut qui vérifie si la demande contient un cookie appelé «Visité». Si c'est le cas, ils sont autorisés à accéder à la page à laquelle ils tentaient d'accéder. Sinon, il les redirige vers "/ Welcome / Index", où le contrôleur leur donne le cookie, et leur montre une page contenant des informations sur le site Web.


J'ai trouvé comment créer des attributs ici ( https://msdn.microsoft.com/en- us / library / dd410056 (v = vs.100) .aspx).


Voici ma classe d'attributs visités:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace LapisRealmv2.Controllers
{
    public class Visited : ActionFilterAttribute
    {
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (!filterContext.HttpContext.Request.Cookies.AllKeys.Contains("Visited"))
        {
            filterContext.Result = new RedirectResult("~/Welcome/Index");
            return;
        }
        base.OnActionExecuting(filterContext);
    }
}

Voici mon Welcome Controller (pour vous aider à créer des cookies):

using System.Web;
using System.Web.Mvc;

namespace LapisRealmv2.Controllers
{
    public class WelcomeController : Controller
    {
        public ActionResult Index()
        {
            HttpCookie cookie = new HttpCookie("Visited");
            // The cookie will expire when the browser is closed.
            this.ControllerContext.HttpContext.Response.Cookies.Add(cookie);
            return View();
        }
    }
}
0
Nick Fulton 29 déc. 2015 à 18:10