private bool IsValid(int itemId, out ContentItem item, out ActionResult invalidResult) { if (_orchardServices.WorkContext.CurrentUser == null || !_orchardServices.Authorizer.Authorize(Permissions.WatchItems)) { invalidResult = new HttpUnauthorizedResult(); item = null; return false; } item = _orchardServices.ContentManager.Get(itemId); if (item == null) { invalidResult = HttpNotFound(); return false; } if (!_orchardServices.Authorizer.Authorize(Orchard.Core.Contents.Permissions.ViewContent)) { invalidResult = new HttpUnauthorizedResult(); return false; } if (!item.Has<WatchablePart>()) { invalidResult = HttpNotFound(); return false; } invalidResult = null; return true; }
public ActionResult Login(string txtLogin, string txtPassword) { SecurityServices serv = new SecurityServices(); Usuario user; ActionResult result = new EmptyResult(); try { user = serv.Login(txtLogin, txtPassword); if (user != null) { // Opcion 1: terminamos aca y no pedimos perfil // result = View("LoginOK", user); // TODO acomodar autenticacion para que no se repita el codigo // Opcion 2: redirigimos a otra vista que nos permite elegir el perfil (salvo que tenga un unico perfil...) if (user.Perfiles.Count > 1) { result = View("PerfilSelect", user); } else { // Guardamos los datos de sesion en el "contexto" de la sesion establecida (similar al Context que usamos en WPF) // Session["SESION_USER"] = serv.CrearSesion(user, user.Perfiles.Single()); FormsAuthentication.SetAuthCookie(user.Login, false); string redirectUrl = FormsAuthentication.GetRedirectUrl(user.Login, false); if (redirectUrl == "/" || string.IsNullOrEmpty(redirectUrl)) { // creamos una nueva vista strong-typed para incorporar la Sesion result = View("LoginOK_v2", Session["SESION_USER"] as Sesion); } else { result = new RedirectResult(redirectUrl); } } } else { // TODO: armar paginas de error para los casos de credenciales incorrectas o excepcion // TODO: y un controlador que ademas realice el log del problema? // result = new HttpUnauthorizedResult("Credenciales incorrectas"); } } catch (Exception ex) { // redireccionar a una pagina de error!! result = new HttpUnauthorizedResult("Estas al horno!!!"); } return result; }