public override string[] GetRolesForUser(string username)
        {
            if (!HttpContext.Current.User.Identity.IsAuthenticated)
            {
                return(null);
            }

            //check cache
            var cacheKey = string.Format("{0}_role", username);

            if (HttpRuntime.Cache[cacheKey] != null)
            {
                return((string[])HttpRuntime.Cache[cacheKey]);
            }
            string[] roles = new string[] { };
            using (gadzeciakContext dc = new gadzeciakContext())
            {
                roles = (from a in dc.Roles
                         join b in dc.UserRoles on a.RoleID equals b.RoleID
                         join c in dc.Uzytkowniks on b.UserID equals c.IdUzytkownik
                         where c.NazwaUzytkownika.Equals(username)
                         select a.RoleName).ToArray <string>();
                if (roles.Count() > 0)
                {
                    HttpRuntime.Cache.Insert(cacheKey, roles, null, DateTime.Now.AddMinutes(_cacheTimeoutInMinute), Cache.NoSlidingExpiration);
                }
            }
            return(roles);
        }
        public ActionResult Login(Uzytkownik l, string ReturnUrl = "")
        {
            using (gadzeciakContext dc = new gadzeciakContext())
            {
                var user = dc.Uzytkowniks.Where(a => a.NazwaUzytkownika.Equals(l.NazwaUzytkownika) && a.Haslo.Equals(l.Haslo)).FirstOrDefault();
                if (user != null)
                {
                    Session["LogedUserID"]       = user.IdUzytkownik.ToString();
                    Session["LogedUserFullname"] = user.NazwaUzytkownika.ToString();
                    Session["LogedUserName"]     = user.Imie.ToString();
                    Session["LogedUserSurname"]  = user.Nazwisko.ToString();
                    Session["LogedUserEmail"]    = user.Email.ToString();

                    FormsAuthentication.SetAuthCookie(user.NazwaUzytkownika, false);
                    if (Url.IsLocalUrl(ReturnUrl))
                    {
                        return(Redirect(ReturnUrl));
                    }
                    else
                    {
                        return(RedirectToAction("AfterLogin", "Uzytkowniks"));
                    }
                }
            }
            //    ModelState.Remove("Haslo");
            return(View());
        }