public override void OnAuthorization(AuthorizationContext filterContext) { var user = MembershipSession.GetUser(); if (user.IsAuthenticated && (string.IsNullOrEmpty(user.Email) || !user.HasSigned)) { this.HandleUnauthorizedRequest(filterContext); } else { base.OnAuthorization(filterContext); } }
public override string GetUserId(Controller controller) { // In this sample we use the session to store the user identifiers. // That's not the best practice, because you should have a logic to identify // a user. You might want to use "OpenID Connect". // You can read more about the protocol in the following link: // https://developers.google.com/accounts/docs/OAuth2Login. //var user = controller.Session["google.user"]; //if (user == null) //{ // user = Guid.NewGuid(); // controller.Session["google.user"] = user; //} //return user.ToString(); return(MembershipSession.GetUser(controller.Session, controller.User.Identity).Id); }
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { var user = MembershipSession.GetUser(); var controller = filterContext.Controller as BaseController; if (user.IsAuthenticated && (string.IsNullOrEmpty(user.Email) || !user.HasSigned)) { string manifestController = "Account"; string manifestAction = "Manifest"; if (!(filterContext.RouteData.Values["controller"].ToString() == manifestController && filterContext.RouteData.Values["action"].ToString() == manifestAction)) { if (controller.IsAjaxRequest) { filterContext.Result = new JsonResult() { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = new { Message = "SignRequired: Patvirtinkite el. paštą ir sutikite su taisyklėmis.", Url = new UrlHelper( ((MvcHandler)HttpContext.Current.Handler).RequestContext). Action(manifestAction, manifestController) } }; } else { var routeVals = new RouteValueDictionary() { { "controller", manifestController }, { "action", manifestAction } }; filterContext.Result = new RedirectToRouteResult(routeVals); } } } else if (!allowAnonymous) { base.HandleUnauthorizedRequest(filterContext); } }
public ChatIndexModel GetIndexModel() { using (var context = usersSessionFactory.CreateContext()) { var userId = MembershipSession.GetUser().DbId; var orgIds = MembershipSession.GetUser().OrganizationIds; var model = new ChatIndexModel(); model.Groups = context.ChatGroups.Where(c => c.ChatMessages.Any() && (!c.IsPrivate || orgIds.Contains(c.OrganizationId))).OrderByDescending(m => m.ChatMessages.Max(cm => cm.Date)) .Select(g => new ChatGroupModel() { Id = g.Id, Name = g.Name, Url = g.Url, MessageCount = g.ChatMessages.Count(), Date = g.ChatMessages.Max(m => m.Date), Users = g.ChatGroupUsers.Where(u => u.UserId != userId).Select(u => new ChatUser() { Id = u.User.ObjectId, DbId = u.User.Id, Name = u.User.FirstName + " " + u.User.LastName, IsOnline = u.User.ChatClients.Any() }) }).Take(20).ToList(); model.Users = context.ChatClients.Where(c => c.User.Id != userId).Select(c => new ChatUser() { Id = c.User.ObjectId, DbId = c.User.Id, Name = c.User.FirstName + " " + c.User.LastName, IsOnline = true }).Distinct().ToList(); return(model); } }