ASP.NET-Beispiel mit C Sharp-Weiterleitung mit Cookies

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 1 Minute Lesedauer
  • Dieser ASP.NET-Beispielcode erstellt ein einfaches Authentifizierungsportal und übergibt eine unverschlüsselte HTTP-Kopfzeile als Cookie.

    Hinweis:
    Die hier beschriebene Funktionalität erfordert die Admin-Rolle.
    Hinweis:
    Cookies sind domänenspezifisch und können nicht in mehreren verschiedenen Netzwerkdomänen verwendet werden. Die einzige Domäne, die ein Cookie lesen kann, ist die Domäne, die es festlegt. Es spielt keine Rolle, welchen Domänennamen Sie festlegen. Wenn Sie nicht die Möglichkeit haben, Ihr SSO-Portal in derselben Netzwerkdomäne wie Ihre ServiceNow -Instanz zu platzieren (z. B. in einer Vor-Ort-Bereitstellung), besteht eine Alternative darin, das SSO-Token mit den URL-Parametern GET oder POST zu übergeben.

    Dieses Beispiel setzt Folgendes voraus:

    • Der Webserver unterstützt ASP.NET und C#.
    • Die ServiceNow-Zielinstanz ist https://<Instanzname>.service-now.com/
    • SiteMinder oder eine andere Single-Sign-On-Anwendung hat den Benutzer vorab authentifiziert.
    • Die ServiceNow-Zielinstanz erwartet die HTTP-Kopfzeile SM_USER.

    Ändern Sie den ASP-Code, um Benutzer zur richtigen ServiceNow-Instanz umzuleiten.

    <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>
    Abbildung : 1. ASP-Portal-Umleitung

    Der folgende C#-Code behandelt das OnClick-Schaltflächen-Event für das Formular. Der Code:

    • Erzeugt das Cookie "SM_USER"
    • Führt eine Umleitung zu der im ASP-Formular angegebenen URL durch

    Ändern Sie den C#-Code, um den richtigen Cookie-Namen zu erstellen.

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