[ patak_daca @ 07.06.2015. 12:29 ] @
Pozdrav!

Na kontroleru treba da proverim da li je user Autorize:

Code:
  [Authorize]
        public ActionResult Index()
        {
            
            return View();
        }


Ranije sam koristio System.Web.Security.Membership za rad sa userima, ali u ovom slučaju ne ( podaci se čuvaju u Session ).

Da li se može proveriti da li je user [Authorize] i da li se može uopšte podesiti "ručno" ?

Hvala!

Patak
[ Shadowed @ 07.06.2015. 13:11 ] @
Mislim da moras koristiti Membership (ili mozda ovaj noviji sistem) da bi ti on automatski proveravao da li je user autorizovan.
Ako vec imas svoj sistem autorizacije/autentifikacije, ono sto bi mogao da uradis je da napravis custom membership provider u kojem ces wrap-ovati svoj sistem. Onda ce asp.net proveravati authorize preko njega a on dalje preko tvog sistema.
[ patak_daca @ 07.06.2015. 13:25 ] @
Pozdrav!

Mislim da ću tako morati...

Hvala puno na pomoći!

Pozdrav!
[ dusans @ 07.06.2015. 14:31 ] @
Ako koristiš custom authentikaciju/autorizaciju, nema potrebe da komplikuješ
sa implementacijom custom membership providera.

Jednostavno, napravi novu klasu koja nasleđuje FilterAttribute
i u njoj implementiraj IAuthorizationFilter interfejs.
Taj atribut posle lepi na kontrolere ili akcije.

http://geekswithblogs.net/bria...-mvc-authorization-filter.aspx
[ patak_daca @ 07.06.2015. 20:22 ] @
Pozdrav!

Hvala puno!!!

Patak
[ Shadowed @ 07.06.2015. 20:46 ] @
Zanimljivo. Mislio sam da je atribut Authorize samo flag ali zapravo je on taj koji obavlja proveru/filtriranje. Kul
[ patak_daca @ 08.06.2015. 16:55 ] @
Pozdrav!

ako može pomoć....

Kada krenem da kreiram klasu

Code:
public class Autorizacija:FilterAttribute,IAuthorizationFilter
  {
      public void OnAuthorization(AuthorizationContext filterContext)
      {
          
      }
  }


Kako da pomoću sesije ( u kojoj se čuva username kada se loguje )
podesim da je autorizovan ?

Ako se to radi drugačije molim za pomoć...

Patak
[ dusans @ 08.06.2015. 17:17 ] @
Kada je ulogovan, ne treba ništa da radiš, a kada nije, onda setuješ Context.Result na recimo redirekciju.
Evo ti Copy/Paste jedno parče mog koda koje ilustruje to:
Code:

            // Check if account is logged
            var Account = // Read from session
            if (Account != null) return; // User is logged, do nothing

            if (LoginRedirect)
            {
                // Redirect to login
                Context.Result = new RedirectToRouteResult(...);
            }
            else
            {
                // Redirect to not authorized
                Context.Result = new RedirectToRouteResult(...);
            }
[ patak_daca @ 08.06.2015. 17:28 ] @
Pozdrav!

Hvala puno!

[ patak_daca @ 08.06.2015. 17:32 ] @
Pozdrav!

kada pokušam da dodelim vrednost iz session u variablu

var Account = Session["username"]; ---- prijavi grešku The name 'Session' does not exist in the current context

Molim za pomoć!

Hvala!
[ dusans @ 08.06.2015. 17:42 ] @
HttpContext.Current.Session, tako nekako...
[ patak_daca @ 08.06.2015. 17:46 ] @
Pozdrav!

Svaka čast!!

Hvala puno!

Sve radi odlično!

Pozdrav!