Exemplo de ASP.NET com redirecionamento C-Sharp com cookies

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 1 min. de leitura
  • Este exemplo de código ASP .NET cria um portal de autenticação simples e passa um cabeçalho HTTP não criptografado como um cookie.

    Nota:
    A funcionalidade descrita aqui requer a função de administrador.
    Nota:
    Os cookies são específicos do domínio e não podem ser usados em diferentes domínios de rede. O único domínio que pode ler um cookie é o domínio que o define. Não importa o nome de domínio definido. Se você não tiver a opção de o portal do SSO estar no mesmo domínio de rede que a instância ServiceNow (por exemplo, em uma implantação no local, uma alternativa é passar o token do SSO usando parâmetros de URL GET ou POST.

    Este exemplo pressupõe:

    • O servidor Web é compatível com PSA .NET e C#
    • A instância ServiceNow de destino é https://<instance name> .service-now.com/
    • O SiteMinder ou outra aplicação de single sign-on pré-autenticou o usuário
    • A instância ServiceNow de destino espera um cabeçalho HTTP de SM_USER

    Altere o código PSA para redirecionar os usuários para a instância ServiceNow apropriada.

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Portal Page Login</title>
    <%--    <meta http-equiv="REFRESH" content="0;url=https://<instance name>.service-now.com/">--%>
     
    </head>
    <body>
        <form id="form1" runat="server">
        <h2><b> Portal Page Login </b></h2>
            <hr style="position: static" />
             <br />
             <asp:Label ID="Label2" runat="server" Font-Size="Larger" Height="21px" Style="position: static"
                Text="Instance URL:" Width="113px"></asp:Label> 
            <asp:TextBox ID="urlBox" runat="server" Font-Size="Large" Style="position: static"></asp:TextBox><br />
            <br />
             <asp:Label ID="Label1" runat="server" Font-Size="Larger" Height="17px" Style="position: static;" Text="User Id:" Width="113px"></asp:Label> 
            <asp:TextBox ID="userNameBox" runat="server" Font-Size="Large" Style="position: static;"></asp:TextBox>
     
            <br />
            <br />
            <asp:Button ID="Button1" runat="server" Height="39px" Style="position: static;" Text="Ok"
                Width="88px" OnClick="Button1_click" />
        </form>
    </body>
    </html>
    </asp>
    Figura 1. Redirecionamento do portal PSA

    O código C# a seguir lida com o evento do botão OnClick para o formulário. O código:

    • Cria o cookie "SM_USER"
    • Executa um redirecionamento para a URL especificada no formulário PSA.

    Altere o código C# para criar o nome de cookie apropriado.

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
     
    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
     
        }
        protected void Button1_click(object sender, EventArgs e)
        {
            try
            {
                HttpCookie myCookie = new HttpCookie("SM_USER");
                myCookie.Value = userNameBox.Text;
                Response.Cookies.Add(myCookie);
                Response.Redirect(urlBox.Text);
     
            }catch {} 
        }
    }