public void SignIn(int userid) { SignInCookieModel cookieModel = new SignInCookieModel(); cookieModel.userid = userid; cookieModel.roles = ""; cookieModel.isAuthenticated = true; HttpCookie cookie = new HttpCookie("ProjectC"); cookie.Value = Tools.ObjToJson(cookieModel); HttpContext.Current.Response.Cookies.Set(cookie); }
protected override bool AuthorizeCore(HttpContextBase httpContext) { bool result = false; if (httpContext == null) { throw new ArgumentNullException("httpContext"); } HttpCookie cookie = HttpContext.Current.Request.Cookies.Get("ProjectC"); if (cookie == null) { httpContext.Response.StatusCode = 401; return(false); } SignInCookieModel user = Tools.JsonToObj(new SignInCookieModel(), cookie.Value); if (!user.isAuthenticated) { httpContext.Response.StatusCode = 401; return(false); } string[] users = Users.Split(','); string[] roles = Roles.Split(','); if (roles.Length == 1 && string.IsNullOrWhiteSpace(roles[0])) { result = true; } else { string[] currentRoles = user.roles.Split(','); foreach (var role in roles) { if (currentRoles.Contains(role)) { result = true; break; } } } if (!result) { httpContext.Response.StatusCode = 403; } return(result); }