Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C#] MVC redirect se non loggato

    ciao!

    vorrei fare in modo che l'utente venga reindirizzato alla pagina di login se non loggato.
    la pagina di login si raggiunge al link https://localhost:44396/Identity/Account/Login.

    nel controller ho messo questo codice:
    codice:
            public IActionResult Index()
            {
                if (User.Identity.IsAuthenticated)
                {
                    return View();
                }
                else
                {
                    return RedirectToPage("./Identity/Account/Login");
                    //return View("/Account/Login");
                }
            }
    ma sbaglio nell'impostare la view o il redirect, perchè mi da sempre errore.
    come dovrei fare??

  2. #2
    Quote Originariamente inviata da fermat Visualizza il messaggio
    ... mi da sempre errore...

  3. #3
    non vi ho messo gli errori perchè ho dato per scontato di sbagliare proprio dal principio.

    cmq, se metto questo:
    codice:
    return RedirectToPage("./Identity/Account/Login");
    mi dice questo:
    codice:
    An unhandled exception occurred while processing the request.
    InvalidOperationException: The relative page path './Identity/Account/Login' can only be used while executing a Razor Page. 
    Specify a root relative path with a leading '/' to generate a URL outside of a Razor Page.
     If you are using LinkGenerator then you must provide the current HttpContext to use relative pages.
    se metto questo:
    codice:
    return View("/Account/Login");return View("/Account/Login");
    mi dice questo:
    codice:
    An unhandled Exception occurred while processing the request.
    InvalidOperationException: The view '/Account/Login' was not found. The following locations were searched:
    /Account/Login

  4. #4
    ho risolto così:
    codice:
    using System.Diagnostics;
    using Microsoft.AspNetCore.Mvc;
    using CSharpNetCoreWeb.Models;
    using Microsoft.AspNetCore.Authorization;
    
    namespace CSharpNetCoreWeb.Controllers
    {
        [Authorize]
        public class HomeController : Controller
        {
            public IActionResult Index()
            {
                return View();
            }
    
            public IActionResult Privacy()
            {
                return View();
            }
    
            [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
            public IActionResult Error()
            {
                return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
            }
        }
    }
    con l'attributo [Authorize].

  5. #5
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    permessi di accesso a parte con la decorazione, il path non doveva essere

    /Identity/Account/Login ? (senza punto iniziale)

    cioè
    codice:
    return RedirectToPage("/Identity/Account/Login");
    ?



Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.