Usuário com melhor resposta
Route Ocultar URL

Pergunta
-
Olá,
eu estou com um problema de segurança ao editar uma página em uma aplicação MVC4 c#.
Como poderia fazer para não mostrar ao usuário o "codigo da URL:http://localhost:3055/Login/Edit/4?" ?
<form action="@Url.Action("Edit", "Login", new {id=@ViewBag.id})" method="get"> @*<input type="text" value="@ViewBag.id" />*@ <label>Alterar Login:...</label> <input type="submit" value="Entrar" class="btn btn-primary" /> </form>
No meu arquivo RouteConfig.cs eu tenho o seguinte código:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace OG { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, namespaces: new[] { "OG.Controllers"} ); } } }
- Editado Wilson Boris sexta-feira, 2 de outubro de 2015 19:48 Alteração de conteúdo
Respostas
-
Wilson Boris,
O usuário no máximo pode alterar a senha e o e-mail, e isso pode ser utilizado com a sessão aberta por esse usuário que no seu código em si não precisa passar nenhum url com paramentos, mas, sim um endereço no qual ele vai alterar e gravar as informações.
Quando o usuário está logado, você consegue resgatar seus dados facilmente pela Sessão ou Cookie ou o metodo que tu utiliza para autenticação.
- Marcado como Resposta Wilson Boris segunda-feira, 5 de outubro de 2015 19:43
Todas as Respostas
-
-
Obrigado pelo retorno Fúlvio,
Acho que não compreendi corretamente, seria isto?
<form action="@Url.Action("Edit", "Login")" method="post"> <input type="hidden" value="@ViewBag.id" /> <label>Alterar Login:...</label> <input type="submit" value="Entrar" class="btn btn-primary" /> </form>
CONTROLLER:
[PermissoesFiltro(Roles = "Administrador, Profissional, Cliente")] public ActionResult Edit(int id=0) { Login login = db.Login.Find(id); if (login == null) { return HttpNotFound(); } ViewBag.cod_Prop = new SelectList(db.PF, "id", "nome", login.cod_Prop); return View(login); } // // POST: /Login/Edit/5 [HttpPost] [PermissoesFiltro(Roles = "Administrador, Profissional, Cliente")] public ActionResult Edit(Login login) { if (ModelState.IsValid) { db.Entry(login).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index", "Home"); } ViewBag.cod_Prop = new SelectList(db.PF, "id", "nome", login.cod_Prop); return View(login); }
- Editado Wilson Boris segunda-feira, 5 de outubro de 2015 15:05 erro
-
-
-
- Editado Fulvio Cezar Canducci Dias segunda-feira, 5 de outubro de 2015 18:40
-
-
Wilson Boris,
O usuário no máximo pode alterar a senha e o e-mail, e isso pode ser utilizado com a sessão aberta por esse usuário que no seu código em si não precisa passar nenhum url com paramentos, mas, sim um endereço no qual ele vai alterar e gravar as informações.
Quando o usuário está logado, você consegue resgatar seus dados facilmente pela Sessão ou Cookie ou o metodo que tu utiliza para autenticação.
- Marcado como Resposta Wilson Boris segunda-feira, 5 de outubro de 2015 19:43
-