Exemple de ASP.NET avec C Sharp redirection avec cookies

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 1 minute de lecture
  • Cet exemple de code ASP .NET crée un portail d’authentification simple et transmet un en-tête HTTP non chiffré sous forme de cookie.

    Remarque :
    Les fonctionnalités décrites ici nécessitent le rôle admin.
    Remarque :
    Les cookies sont spécifiques à un domaine et ne peuvent pas être utilisés sur différents domaines du réseau. Le seul domaine qui peut lire un cookie est le domaine qui le définit. Le nom de domaine que vous définissez n’a pas d’importance. Si vous n’avez pas d’option permettant à votre portail SSO d’être dans le même domaine réseau que votre ServiceNow instance (par exemple, dans un déploiement sur site, une autre option consiste à transmettre le jeton SSO à l’aide de l’URL GET ou POST des paramètres).

    Cet exemple suppose que :

    • Le serveur Web prend en charge ASP, .NET et C#
    • L’instance cible ServiceNow est https://<nom d’instance>.service-now.com/
    • SiteMinder ou une autre application d’authentification unique a pré-authentifié l’utilisateur
    • L’instance cible ServiceNow attend un en-tête HTTP de SM_USER

    Modifiez le code ASP pour rediriger les utilisateurs vers l’instance appropriée ServiceNow .

    <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>
    Figure 1. Redirection du portail ASP

    Le code C# suivant gère l’événement de bouton OnClick pour le formulaire. Le code :

    • Crée le cookie « SM_USER »
    • Effectue une redirection vers l’URL spécifiée dans le formulaire ASP.

    Modifiez le code C# pour créer le nom de cookie approprié.

    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 {} 
        }
    }