Authorize - zabezpieczenie przed wejściem na strone z adresu url

0

Robie zabezpieczenie w mojej aplikacji przed wejściem niezalogowanych użytkowników pod konkretne akcje kontrolerów i widoki bezpośrednio z url.

W FiltersConfig wstawiłem dla wszystkich tras:

filters.Add(new AuthorizeAttribute());

i jest ok, poza jednym szczegółem, gdy uzytkownik nie jest zalogowany wyrzuca:

Server Error in '/' Application.

Pytanie jak to najprościej zrobić aby każdego niezalogowanego użytkownika za każdym razem przenosiło z powrotem do panelu logowania pod konkretny url, obecnie przenosi pod ten powyższy błąd?

0

W configu okreslasz w atrybucie loginUrl URL do przekierowania niezalogowanych uzytkownikow. Oznacz sobie rowniez akcje logowania/rejestracji atrybutem AllowAnonymous.

0

Ok, działa tylko teraz jest problem z rozwiązywaniem adresów URL. Wygląda to tak.
web.config:

<authentication mode="Forms">
      <forms loginUrl="~/LoginSys/_LoginSystem" timeout="2880" />
    </authentication>

Gdy wpisuję:
http://localhost:61249/Home/Index
to przenosi mnie do adresu:
http://localhost:61249/LoginSys/_LoginSystem?ReturnUrl=%2fHome%2fIndex
co w pewnym sensie jest poprawne bo przenosi tam gdzie chciałem, czyli do panelu logowania, tylko jak to zrobić aby w url był faktycznym adresem czyli?:
http://localhost:61249/LoginSys/_LoginSystem

RouteConfig, wygląda tak:

public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: null,
                url: "Strona{Page}",
                defaults: new { Controller = "Home", action = "Index" }

            );

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "LoginSys", action = "_LoginSystem", id = UrlParameter.Optional }
            );
        }
    }
0

Masz ten faktyczny adres tylko dodatkowo parametr ReturnUrl.
A jezeli chcesz sie pozbyc tego parametru:
http://stackoverflow.com/questions/3716153/how-to-remove-returnurl-from-url#3716672

1 użytkowników online, w tym zalogowanych: 0, gości: 1