none
Dúvida sobre a melhores práticas. RRS feed

  • Pergunta

  • Olá pessoal, bom dia!

    Gostaria de saber como faço para criar uma página de login semelhante ao do SalesForce (https://login.salesforce.com/?locale=br) onde eu me logo primeiramente e depois tenho acesso as ferramentas do site, respeitando a arquitetura MVC. Estou pensando em criar uma página totalmente independente da aplicação e chama-la depois ( Outro ponto seria como chama-la, se fosse aplicar essa solução ).

    Bom espero que tenham entendido minha dúvida, caso não tenham, tentarei explicar melhor.

    Obrigado!


    kaneda182
    quinta-feira, 17 de fevereiro de 2011 12:32

Respostas

  • Da uma olhada neste artigo q escrevi >> http://miltonfilho.net/?p=42 estou utilizando desta forma aqui no trabalho e não tenho do q reclamar :) 

    se tiver alguma dúvida entra em contato comigo.


    1000ton - MSN: milton.filho@msn.com
    • Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:52
    quinta-feira, 17 de fevereiro de 2011 13:13
  • Na hr de criar a view la embaixo vc define a masterpage só desmarcar a opção q ele vai gerar html puro. A estrutura vai ser a mesma e a forma de chamar tbm apenas não vai ser renderizada a master_page.
    1000ton - MSN: milton.filho@msn.com
    • Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:52
    quinta-feira, 17 de fevereiro de 2011 13:38
  • Caso a página ja tenha sido criada basta remover o atributo MasterPageFile da diretiva page e remover tbm os content place holder e colocar apenas html, body, head normalmente.

    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>


    1000ton - MSN: milton.filho@msn.com
    • Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:52
    quinta-feira, 17 de fevereiro de 2011 13:40
  • vc vai acessar ela da mesma forma q acessaria no MVC usando a rota.

     

    qual controller q ela ta? qual o nome da action?

     

    eu no caso tenho no controler login as actions login e logoff a login é esta página pra login sem master page e a logoff é pra destruir a session.

     

    pra chamar www.site.com.br/Login/Login usando as rotas do MVC normalmente, a falta de master page não influencia nisso vc pode ter várias páginas com diferentes Master pages 


    1000ton - MSN: milton.filho@msn.com
    • Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:52
    quinta-feira, 17 de fevereiro de 2011 14:13
  • Coloca =

     

    <%=Html.ActionLink("Go Master","Action","Controller") %>


    1000ton - MSN: milton.filho@msn.com
    • Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:52
    • Não Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:59
    • Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:59
    quinta-feira, 17 de fevereiro de 2011 16:17

Todas as Respostas

  • Da uma olhada neste artigo q escrevi >> http://miltonfilho.net/?p=42 estou utilizando desta forma aqui no trabalho e não tenho do q reclamar :) 

    se tiver alguma dúvida entra em contato comigo.


    1000ton - MSN: milton.filho@msn.com
    • Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:52
    quinta-feira, 17 de fevereiro de 2011 13:13
  • Então Milton, interessante a forma de validar o usuário. Mas queria saber como criar o form do Login separado pois ele não vai seguir o mesmo layout do site.master, ele vai ter um layout totalmente diferenciado. Queria saber como cria-lo dentro da estrutura MVC.

     

    Obrigado!


    kaneda182
    quinta-feira, 17 de fevereiro de 2011 13:34
  • Na hr de criar a view la embaixo vc define a masterpage só desmarcar a opção q ele vai gerar html puro. A estrutura vai ser a mesma e a forma de chamar tbm apenas não vai ser renderizada a master_page.
    1000ton - MSN: milton.filho@msn.com
    • Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:52
    quinta-feira, 17 de fevereiro de 2011 13:38
  • Caso a página ja tenha sido criada basta remover o atributo MasterPageFile da diretiva page e remover tbm os content place holder e colocar apenas html, body, head normalmente.

    <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>


    1000ton - MSN: milton.filho@msn.com
    • Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:52
    quinta-feira, 17 de fevereiro de 2011 13:40
  • Então minha view está assim:

     

    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Login</title>
    </head>
    <body>
        <div>
       
        </div>
    </body>
    </html>

     

    Mas me da o seguinte erro , quando eu configuro para "Set startup page".

     

    Server Error in '/' Application.

    The resource cannot be found.

    Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.

    Requested URL: /Views/Account/Login.aspx

     

    Obrigado!


    kaneda182
    quinta-feira, 17 de fevereiro de 2011 13:52
  • vc vai acessar ela da mesma forma q acessaria no MVC usando a rota.

     

    qual controller q ela ta? qual o nome da action?

     

    eu no caso tenho no controler login as actions login e logoff a login é esta página pra login sem master page e a logoff é pra destruir a session.

     

    pra chamar www.site.com.br/Login/Login usando as rotas do MVC normalmente, a falta de master page não influencia nisso vc pode ter várias páginas com diferentes Master pages 


    1000ton - MSN: milton.filho@msn.com
    • Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:52
    quinta-feira, 17 de fevereiro de 2011 14:13
  • AccountController , o nome da action Index.

    Dentro do metodo Index, coloquei return View();

    Eu adicionei na rota no Global.asax:

                routes.MapRoute(
                    "Login", // Route name
                    "{controller}/{action}/", // URL with parameters
                    new { controller = "Account", action = "Index", id = UrlParameter.Optional } // Parameter defaults
                );

    Obrigado!


    kaneda182
    • Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:52
    • Não Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:58
    quinta-feira, 17 de fevereiro de 2011 14:29
  • Consegui fazer funcionar a página sem usar o master page.

    Mas agora quero chamar uma View que está usando o master page.

    Coloquei no body da página o seguinte código.

    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Index</title>
    </head>
    <body>
        <form runat="server">
        <div>
            <h2>
                Página sem Master Page
            </h2>
            <% Html.ActionLink("Go to master", "MetodoParaViewUsandoMasterPage", new { teste1 = "x" }); %>
        </div>
        </form>
    </body>
    </html>

    Mas simplesmente não aparece na página isso, o que estou fazendo de errado?

     

    Clico com direito na página e seleciono a opção "View Source" e me é mostrado o seguinte:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head><title>
        Index
    </title></head>
    <body>
        <form name="ctl01" method="post" action="" id="ctl01">
    <div>
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJOTU4MjMyMzI1ZGSTs1ciGazXRVPWHbQuNdQ421BsNg==" />
    </div>
     
        <div>
            <h2>
                Página sem Master Page
            </h2>
            [REPAREM QUE AQUI DEVERIA APARECER O ACTION LINK e não aparece]
        </div>
        </form>
    </body>
    </html>

    Obrigado!

     


    kaneda182
    quinta-feira, 17 de fevereiro de 2011 16:14
  • Coloca =

     

    <%=Html.ActionLink("Go Master","Action","Controller") %>


    1000ton - MSN: milton.filho@msn.com
    • Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:52
    • Não Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:59
    • Marcado como Resposta kaneda182 quinta-feira, 17 de fevereiro de 2011 16:59
    quinta-feira, 17 de fevereiro de 2011 16:17