Travailler avec les url de retour dans asp.net de base

Nous essayons de rediriger l'utilisateur(à l'aide de retourner URL) de la page de connexion si l'utilisateur n'est pas authentifié/autorisé lors de l'accès à l'URL donnée. Cependant, nous ne sommes pas en mesure d'ajouter les paramètres personnalisés(clientname dans ce cas) dans le chemin de rediriger l'utilisateur vers la page de connexion. Nous sommes à l'aide de asp.net l'identité de cadre de base.

Dans De Démarrage.cs nous avons défini l'itinéraire ci-dessous, qui seront applicables à tous.

app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "Edge",
                    template: "{clientname}/{controller}/{action}");
            });

également ajouté au-dessous de la ligne de code pour s'assurer que toutes les Url d'authentification requis

services.AddMvc(o =>
{
   o.Filters.Add(new AuthorizeFilter(new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build()));
})

et configuré le IdentityOptions pour rediriger vers la page de connexion comme suit

services.Configure<IdentityOptions>(opt =>
{
  opt.Cookies.ApplicationCookie.LoginPath = new PathString("/Account/Login");
});

et Compte Contrôleur ci-dessous est la méthode de login

[HttpGet]
[AllowAnonymous]
public IActionResult Login(string returnUrl = null)
{
    this.ViewData["ReturnUrl"] = returnUrl;
    return View();
}

Si l'utilisateur tente d'accéder à une URL sans authentification il doit rediriger vers la page de connexion. Considérons ci-dessous méthode de l'Indice de la Maison Contrôleur comme un exemple.

public IActionResult Index()
{
    return View();
}

Mais chaque fois que nous essayons de rediriger l'utilisateur vers la page de login, il n'ajoute pas le nom du client dans l'URL. Il fait en dessous de l'URL où clientname est manquant dans /Account/Login

http://localhost:5002/Account/Login?ReturnUrl=/ClientA/home/index

De ce fait, il en est résulté une erreur 404 Page not found.Donc, ce que les changements que nous devons faire pour la bonne redirection.

L'Url doit être constituée comme suit

http://localhost:5002/ClientA/Account/Login?ReturnUrl=/ClientA/home/index
  • vous pouvez poster l'ensemble de la routeconfig.cs
  • Je suis à l'aide de asp.net noyau où routeconfig.cs n'est pas présent. Nous avons défini les itinéraires de Démarrage.cs fichier dont j'ai fourni dans le code
InformationsquelleAutor XamDev | 2017-08-22