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

Odpowiedz Nowy wątek
2014-12-14 09:58
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?

edytowany 2x, ostatnio: Sebastiano, 2014-12-14 10:12

Pozostało 580 znaków

2014-12-14 10:47
0

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

Pozostało 580 znaków

2014-12-14 11:15
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 }
            );
        }
    }
edytowany 3x, ostatnio: Sebastiano, 2014-12-14 13:12

Pozostało 580 znaków

2014-12-14 16:51
0

Masz ten faktyczny adres tylko dodatkowo parametr ReturnUrl.
A jezeli chcesz sie pozbyc tego parametru:
http://stackoverflow.com/ques[...]ve-returnurl-from-url#3716672

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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