Exemple de ASP.NET avec C Redirection Sharp avec cookies
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 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 la possibilité que votre portail SSO se trouve dans le même domaine réseau que votre ServiceNow instance (par exemple, dans un déploiement sur site, une alternative consiste à transmettre le jeton SSO à l’aide d’une URL GET ou POST de paramètres).
Cet exemple suppose :
- 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>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 sur 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 {}
}
}