Présentation de l’authentification et des services d’application de profil d’ASP.NET AJAX
par Scott Cate
Le service d’authentification permet aux utilisateurs de fournir des informations d’identification afin de recevoir un cookie d’authentification, et est le service de passerelle permettant d’autoriser les profils utilisateur personnalisés fournis par ASP.NET. L’utilisation de la ASP.NET service d’authentification AJAX est compatible avec l’authentification par ASP.NET par formulaire standard. Par conséquent, les applications qui utilisent actuellement l’authentification par formulaire (par exemple avec le contrôle Connexion) ne seront pas interrompues par la mise à niveau vers le service d’authentification AJAX.
Introduction
Dans le cadre du .NET Framework 3.5, Microsoft fournit une mise à niveau d’environnement conséquente ; non seulement un nouvel environnement de développement est disponible, mais les nouvelles fonctionnalités Language-Integrated Query (LINQ) et d’autres améliorations du langage sont à venir. En outre, certaines fonctionnalités familières d’autres ensembles d’outils, notamment les extensions ASP.NET AJAX, sont incluses en tant que membres de première classe de la bibliothèque de classes de base .NET Framework. Ces extensions permettent de nombreuses nouvelles fonctionnalités client enrichies, notamment le rendu partiel des pages sans nécessiter une actualisation complète de la page, la possibilité d’accéder aux services web via un script client (y compris l’API de profilage ASP.NET) et une API côté client étendue conçue pour miroir la plupart des schémas de contrôle vus dans l’ensemble de contrôles côté serveur ASP.NET.
Ce livre blanc examine l’implémentation et l’utilisation des services de profilage ASP.NET et d’authentification par formulaire, car ils sont exposés par les extensions Microsoft ASP.NET AJAXLes extensions AJAX rendent l’authentification par formulaire incroyablement facile à prendre en charge, car elle (ainsi que le service de profilage) est exposée via un script proxy de service web. Les extensions AJAX prennent également en charge l’authentification personnalisée via la classe AuthenticationServiceManager.
Ce livre blanc est basé sur la version bêta 2 de Visual Studio 2008 et .NET Framework 3.5. Ce livre blanc suppose également que vous allez utiliser Visual Studio 2008 Beta 2, et non Visual Web Developer Express, et que vous fournirez des procédures pas à pas en fonction de l’interface utilisateur de Visual Studio. Certains exemples de code peuvent utiliser des modèles de projet non disponibles dans Visual Web Developer Express.
Profils et authentification
Les profils et les services d’authentification Microsoft ASP.NET sont fournis par le système d’authentification par formulaires ASP.NET et sont des composants standard de ASP.NET. Les extensions AJAX ASP.NET fournissent un accès de script à ces services via des proxys de script, via un modèle assez simple sous l’espace de noms Sys.Services de la bibliothèque AJAX cliente.
Le service d’authentification permet aux utilisateurs de fournir des informations d’identification afin de recevoir un cookie d’authentification, et est le service de passerelle permettant d’autoriser les profils utilisateur personnalisés fournis par ASP.NET. L’utilisation de la ASP.NET service d’authentification AJAX est compatible avec l’authentification par ASP.NET par formulaire standard. Par conséquent, les applications qui utilisent actuellement l’authentification par formulaire (par exemple avec le contrôle Connexion) ne seront pas interrompues par la mise à niveau vers le service d’authentification AJAX.
Le service Profil permet l’intégration et le stockage automatiques des données utilisateur en fonction de l’appartenance, comme fourni par le service d’authentification. Les données stockées sont spécifiées par le fichier web.config et les différents fournisseurs de services de profilage gèrent la gestion des données. Comme avec le service d’authentification, le service de profil AJAX est compatible avec le service de profil ASP.NET standard, de sorte que les pages qui incorporent actuellement des fonctionnalités du service de profil ASP.NET ne doivent pas être interrompues en incluant la prise en charge AJAX.
L’incorporation des services d’authentification et de profilage ASP.NET eux-mêmes dans une application n’entre pas dans le cadre de ce livre blanc. Pour plus d’informations sur le sujet, consultez l’article de référence MSDN Library Managing Users by Using Membership à l’adresse https://msdn.microsoft.com/library/tw292whz.aspx. ASP.NET inclut également un utilitaire permettant de configurer automatiquement l’appartenance avec un SQL Server, qui est le fournisseur de services d’authentification par défaut pour l’appartenance ASP.NET. Pour plus d’informations, consultez l’article ASP.NET SQL Server’outil d’inscription (Aspnet_regsql.exe) à l’adresse https://msdn.microsoft.com/library/ms229862(vs.80).aspx.
Utilisation du service d’authentification AJAX ASP.NET
Le service d’authentification AJAX ASP.NET doit être activé dans le fichier web.config :
<system.web.extensions>
<scripting>
<webServices>
<authenticationService enabled="true" />
</webServices>
</scripting>
</system.web.extensions>
Le service d’authentification nécessite l’activation de ASP.NET l’authentification par formulaire et l’activation des cookies sur le navigateur client (un script ne peut pas activer une session sans cookie, car les sessions sans cookie nécessitent des paramètres d’URL).
Une fois le service d’authentification AJAX activé et configuré, le script client peut immédiatement tirer parti de l’objet Sys.Services.AuthenticationService. Principalement, le script client souhaite tirer parti de la méthode et isLoggedIn
de la login
propriété. Plusieurs propriétés permettent de fournir des valeurs par défaut à la méthode de connexion, qui peut accepter un grand nombre de paramètres.
Membres Sys.Services.AuthenticationService
méthode de connexion :
La méthode login() commence une demande d’authentification des informations d’identification de l’utilisateur. Cette méthode est asynchrone et ne bloque pas l’exécution.
Paramètres :
Nom du paramètre | Signification |
---|---|
userName | Obligatoire. Nom d’utilisateur à authentifier. |
mot de passe | Facultatif (la valeur par défaut est Null). Mot de passe de l’utilisateur. |
isPersistent | Facultatif (la valeur par défaut est false). Indique si le cookie d’authentification de l’utilisateur doit persister entre les sessions. Si la valeur est false, l’utilisateur se déconnecte lorsque le navigateur est fermé ou que la session expire. |
redirectUrl | Facultatif (la valeur par défaut est Null). URL vers laquelle rediriger le navigateur en cas d’authentification réussie. Si ce paramètre a la valeur Null ou une chaîne vide, aucune redirection n’est effectuée. |
customInfo | Facultatif (la valeur par défaut est Null). Ce paramètre n’est actuellement pas utilisé et est réservé pour une utilisation ultérieure. |
loginCompletedCallback | Facultatif (la valeur par défaut est Null). Fonction à appeler lorsque la connexion est terminée. S’il est spécifié, ce paramètre remplace la propriété defaultLoginCompleted. |
failedCallback | Facultatif (la valeur par défaut est Null). Fonction à appeler lorsque la connexion a échoué. S’il est spécifié, ce paramètre remplace la propriété defaultFailedCallback. |
userContext | Facultatif (la valeur par défaut est Null). Données de contexte utilisateur personnalisées qui doivent être passées aux fonctions de rappel. |
Valeur de retour :
Cette fonction n’inclut pas de valeur de retour. Toutefois, un certain nombre de comportements sont inclus à la fin d’un appel à cette fonction :
- La page active sera actualisée ou modifiée si le
redirectUrl
paramètre n’était ni null ni une chaîne vide. - Toutefois, si le paramètre était null ou une chaîne vide, le paramètre ou
defaultLoginCompletedCallback
laloginCompletedCallback
propriété est appelé. - Si l’appel au service web échoue, le
failedCallback
paramètre dedefaultFailedCallback
la propriété est appelé.
méthode logout :
La méthode logout() supprime le cookie d’informations d’identification et déconnecte l’utilisateur actuel de l’application web.
Paramètres :
Nom du paramètre | Signification |
---|---|
redirectUrl | Facultatif (la valeur par défaut est Null). URL vers laquelle rediriger le navigateur en cas d’authentification réussie. Si ce paramètre a la valeur Null ou une chaîne vide, aucune redirection n’est effectuée. |
logoutCompletedCallback | Facultatif (la valeur par défaut est Null). Fonction à appeler une fois la déconnexion terminée. S’il est spécifié, ce paramètre remplace la propriété defaultLogoutCompleted. |
failedCallback | Facultatif (la valeur par défaut est Null). Fonction à appeler lorsque la connexion a échoué. S’il est spécifié, ce paramètre remplace la propriété defaultFailedCallback. |
userContext | Facultatif (la valeur par défaut est Null). Données de contexte utilisateur personnalisées qui doivent être passées aux fonctions de rappel. |
Valeur de retour :
Cette fonction n’inclut pas de valeur de retour. Toutefois, un certain nombre de comportements sont inclus à la fin d’un appel à cette fonction :
- La page active sera actualisée ou modifiée si le
redirectUrl
paramètre n’était ni null ni une chaîne vide. - Toutefois, si le paramètre était null ou une chaîne vide, le paramètre ou
defaultLogoutCompletedCallback
lalogoutCompletedCallback
propriété est appelé. - Si l’appel au service web échoue, le
failedCallback
paramètre dedefaultFailedCallback
la propriété est appelé.
propriété defaultFailedCallback (get, set) :
Cette propriété spécifie une fonction qui doit être appelée en cas d’échec de communication avec le service web. Il doit recevoir un délégué (ou une référence de fonction).
La référence de fonction spécifiée par cette propriété doit avoir la signature suivante :
function AuthenticationFailureCallback(error, userContext, methodName);
Paramètres :
Nom du paramètre | Signification |
---|---|
error | Spécifie les informations d’erreur. |
userContext | Spécifie les informations de contexte utilisateur fournies lors de l’appel de la fonction de connexion ou de déconnexion. |
methodName | Nom de la méthode appelante. |
propriété defaultLoginCompletedCallback (get, set) :
Cette propriété spécifie une fonction qui doit être appelée lorsque l’appel du service web de connexion est terminé. Il doit recevoir un délégué (ou une référence de fonction).
La référence de fonction spécifiée par cette propriété doit avoir la signature suivante :
function AuthenticationLoginCompletedCallback(validCredentials, userContext, methodName);
Paramètres :
Nom du paramètre | Signification |
---|---|
validCredentials | Spécifie si l’utilisateur a fourni des informations d’identification valides. true si l’utilisateur s’est correctement connecté ; sinon false , . |
userContext | Spécifie les informations de contexte utilisateur fournies lors de l’appel de la fonction de connexion. |
methodName | Nom de la méthode appelante. |
propriété defaultLogoutCompletedCallback (get, set) :
Cette propriété spécifie une fonction qui doit être appelée lorsque l’appel de déconnexion du service web est terminé. Il doit recevoir un délégué (ou une référence de fonction).
La référence de fonction spécifiée par cette propriété doit avoir la signature suivante :
function AuthenticationLogoutCompletedCallback(result, userContext, methodName);
Paramètres :
Nom du paramètre | Signification |
---|---|
result | Ce paramètre sera toujours null ; il est réservé pour une utilisation ultérieure. |
userContext | Spécifie les informations de contexte utilisateur fournies lors de l’appel de la fonction de connexion. |
methodName | Nom de la méthode appelante. |
propriété isLoggedIn (get) :
Cette propriété obtient l’état d’authentification actuel de l’utilisateur ; il est défini par l’objet ScriptManager lors d’une demande de page.
Cette propriété retourne true
si l’utilisateur est actuellement connecté ; sinon, elle retourne false
.
propriété path (get, set) :
Cette propriété détermine par programmation l’emplacement du service web d’authentification. Il peut être utilisé pour remplacer le fournisseur d’authentification par défaut, ainsi qu’un jeu de manière déclarative dans la propriété Path du nœud enfant AuthenticationService du contrôle ScriptManager (pour plus d’informations, voir la rubrique Utilisation d’un fournisseur de services d’authentification personnalisé ci-dessous).
Notez que l’emplacement du service d’authentification par défaut ne change pas. Toutefois, ASP.NET AJAX vous permet de spécifier l’emplacement d’un service web qui fournit la même interface de classe que le proxy de service d’authentification AJAX ASP.NET.
Notez également que cette propriété ne doit pas être définie sur une valeur qui dirige la demande de script hors du site actuel. Étant donné que l’application actuelle ne recevrait pas les informations d’identification d’authentification, cela serait inutile ; en outre, la technologie sous-jacente AJAX ne doit pas publier de requêtes intersites et peut générer une exception de sécurité dans le navigateur client.
Cette propriété est un String
objet représentant le chemin d’accès au service web d’authentification.
propriété timeout (get, set) :
Cette propriété détermine la durée d’attente du service d’authentification avant de supposer que la demande de connexion a échoué. Si le délai d’expiration expire en attendant la fin d’un appel, le rappel ayant échoué est appelé et l’appel ne se termine pas.
Cette propriété est un Number
objet qui représente le nombre de millisecondes à attendre pour les résultats du service d’authentification.
Exemple de code : connexion au service d’authentification
Le balisage suivant est un exemple de page ASP.NET avec un simple appel de script aux méthodes de connexion et de déconnexion de la classe AuthenticationService.
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Login Example</title>
<script type="text/javascript">
function Login()
{
var userTextbox = $get("txtUser");
var passTextbox = $get("txtPassword");
Sys.Services.AuthenticationService.login(userTextbox.value,
passTextbox.value, false, null, null, LoginServiceCompleted,
LoginServiceFailed, "Context Info");
}
function Logout()
{
Sys.Services.AuthenticationService.logout(null, LogoutServiceCompleted,
LoginServiceFailed, "Context Info");
}
function LoginServiceFailed(error, userContext, methodName)
{
alert('There was an error with the authentication service:\n\n' + error);
}
function LoginServiceCompleted(validCredentials, userContext, methodName)
{
if (validCredentials)
{
alert('Great! You successfully logged in.');
}
else
{
alert('Oops! You gave us bad credentials!');
}
}
function LogoutServiceCompleted(result, userContext, methodName)
{
alert('You have been logged out from the web site.');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server"
EnableScriptLocalization="true">
</asp:ScriptManager>
<div>
<asp:TextBox ID="txtUser" runat="Server"></asp:TextBox>
<br />
<asp:TextBox ID="txtPassword" runat="Server" TextMode="Password"/>
<br />
<asp:Button Text="Log in" ID="btnLogin" runat="server"
OnClientClick="Login(); return false;" />
</div>
</form>
</body>
</html>
Accès aux données de profilage ASP.NET via AJAX
Le service de profilage ASP.NET est également exposé via les extensions ASP.NET AJAX. Étant donné que le service de profilage ASP.NET fournit une API riche et granulaire permettant de stocker et de récupérer des données utilisateur, il peut s’agir d’un excellent outil de productivité.
Le service de profil doit être activé dans web.config ; ce n’est pas le cas par défaut. Pour ce faire, vérifiez que l’élément profileService
enfant a enabled= true spécifié dans web.config et que vous avez spécifié les propriétés pouvant être lues ou écrites comme suit :
<system.web.extensions>
<scripting>
<webServices>
<profileService enabled="true"
readAccessProperties= Name,Address,BackgroundColor
writeAccessProperties= BackgroundColor />
</webServices>
</scripting>
</system.web.extensions>
Le service de profil doit également être configuré. Bien que la configuration du service de profilage soit en dehors de la portée de ce livre blanc, il est utile de noter que les groupes tels que définis dans les paramètres de configuration de profil sont accessibles en tant que sous-propriétés du nom du groupe. Par exemple, avec la section de profil suivante spécifiée :
<profile enabled="true">
<properties>
<add name="Name" type="System.String"/>
<group name="Address">
<add name="Line1" type="System.String"/>
<add name="Line2" type="System.String"/>
<add name="City" type="System.String"/>
<add name="State" type="System.String"/>
<add name="Zip" type="System.String"/>
</group>
<add name="BackgroundColor" type="System.Drawing.Color"/>
</properties>
</profile>
Le script client peut accéder à Name, Address.Line1, Address.Line2, Address.City, Address.State, Address.Zip et BackgroundColor en tant que propriétés du champ de propriétés de la classe ProfileService.
Une fois le service de profilage AJAX configuré, il est immédiatement disponible dans les pages ; Toutefois, il devra être chargé une seule fois avant l’utilisation.
Membres Sys.Services.ProfileService
champ properties :
Le champ propriétés expose toutes les données de profil configurées en tant que propriétés enfants qui peuvent être référencées par la convention dot-operator-name. Les propriétés qui sont des enfants des groupes de propriétés sont appelées GroupName.PropertyName. Dans l’exemple de configuration de profil présenté ci-dessus, pour obtenir l’état de l’utilisateur, vous pouvez utiliser l’identificateur suivant :
Sys.Services.ProfileService.properties.Address.State
méthode load :
Charge une liste sélectionnée ou toutes les propriétés à partir du serveur.
Paramètres :
Nom du paramètre | Signification |
---|---|
propertyNames | Facultatif (la valeur par défaut est Null). Propriétés à charger à partir du serveur. |
loadCompletedCallback | Facultatif (la valeur par défaut est Null). Fonction à appeler lorsque le chargement est terminé. |
failedCallback | Facultatif (la valeur par défaut est Null). Fonction à appeler en cas d’erreur. |
userContext | Facultatif (la valeur par défaut est Null). Informations de contexte à passer à la fonction de rappel. |
La fonction de chargement n’a pas de valeur de retour. Si l’appel s’est terminé correctement, il appelle le paramètre ou defaultLoadCompletedCallback
la loadCompletedCallback
propriété . Si l’appel a échoué ou si le délai d’expiration a expiré, le paramètre ou defaultFailedCallback
la failedCallback
propriété est appelé.
Si le propertyNames
paramètre n’est pas fourni, toutes les propriétés configurées en lecture sont récupérées du serveur.
save, méthode :
La méthode save() enregistre la liste de propriétés spécifiée (ou toutes les propriétés) dans le profil ASP.NET de l’utilisateur.
Paramètres :
Nom du paramètre | Signification |
---|---|
propertyNames | Facultatif (la valeur par défaut est Null). Propriétés à enregistrer sur le serveur. |
saveCompletedCallback | Facultatif (la valeur par défaut est Null). Fonction à appeler lorsque l’enregistrement est terminé. |
failedCallback | Facultatif (la valeur par défaut est Null). Fonction à appeler en cas d’erreur. |
userContext | Facultatif (la valeur par défaut est Null). Informations de contexte à passer à la fonction de rappel. |
La fonction save n’a pas de valeur de retour. Si l’appel se termine correctement, il appelle le paramètre ou defaultSaveCompletedCallback
la saveCompletedCallback
propriété . Si l’appel a échoué ou si le délai d’expiration a expiré, la failedCallback
propriété ou defaultFailedCallback
est appelée.
Si le paramètre a la propertyNames
valeur Null, toutes les propriétés de profil sont envoyées au serveur et le serveur décide quelles propriétés peuvent être enregistrées et celles qui ne peuvent pas être enregistrées.
propriété defaultFailedCallback (get, set) :
Cette propriété spécifie une fonction qui doit être appelée en cas d’échec de communication avec le service web. Il doit recevoir un délégué (ou une référence de fonction).
La référence de fonction spécifiée par cette propriété doit avoir la signature suivante :
function AuthenticationFailureCallback(error, userContext, methodName);
Paramètres :
Nom du paramètre | Signification |
---|---|
Erreur | Spécifie les informations d’erreur. |
userContext | Spécifie les informations de contexte utilisateur fournies lors de l’appel de la fonction de chargement ou d’enregistrement. |
methodName | Nom de la méthode appelante. |
propriété defaultSaveCompleted (get, set) :
Cette propriété spécifie une fonction qui doit être appelée à la fin de l’enregistrement des données de profil de l’utilisateur. Il doit recevoir un délégué (ou une référence de fonction).
La référence de fonction spécifiée par cette propriété doit avoir la signature suivante :
function ProfileSaveComplete(numPropsSaved, userContext, methodName);
Paramètres :
Nom du paramètre | Signification |
---|---|
numPropsSaved | Spécifie le nombre de propriétés enregistrées. |
userContext | Spécifie les informations de contexte utilisateur fournies lors de l’appel de la fonction de chargement ou d’enregistrement. |
methodName | Nom de la méthode appelante. |
propriété defaultLoadCompleted (get, set) :
Cette propriété spécifie une fonction qui doit être appelée à la fin du chargement des données de profil de l’utilisateur. Il doit recevoir un délégué (ou une référence de fonction).
La référence de fonction spécifiée par cette propriété doit avoir la signature suivante :
function ProfileLoadComplete(numPropsLoaded, userContext, methodName);
Paramètres :
Nom du paramètre | Signification |
---|---|
numPropsLoaded | Spécifie le nombre de propriétés chargées. |
userContext | Spécifie les informations de contexte utilisateur fournies lors de l’appel de la fonction de chargement ou d’enregistrement. |
methodName | Nom de la méthode appelante. |
propriété path (get, set) :
Cette propriété détermine par programmation l’emplacement du service web de profil. Il peut être utilisé pour remplacer le fournisseur de services de profil par défaut, ainsi qu’un jeu de manière déclarative dans la propriété Path du nœud enfant ProfileService du contrôle ScriptManager.
Notez que l’emplacement du service de profil par défaut ne change pas. Toutefois, ASP.NET AJAX vous permet de spécifier l’emplacement d’un service web qui fournit la même interface de classe que le proxy de service d’authentification AJAX ASP.NET.
Notez également que cette propriété ne doit pas être définie sur une valeur qui dirige la demande de script hors du site actuel. La technologie sous-jacente AJAX ne doit pas publier de requêtes intersites et peut générer une exception de sécurité dans le navigateur client.
Cette propriété est un String
objet qui représente le chemin d’accès au service web de profil.
propriété timeout (get, set) :
Cette propriété détermine la durée d’attente du service de profil avant de supposer que la demande de chargement ou d’enregistrement a échoué. Si le délai d’expiration expire en attendant la fin d’un appel, le rappel ayant échoué est appelé et l’appel ne se termine pas.
Cette propriété est un Number
objet qui représente le nombre de millisecondes à attendre pour les résultats du service de profil.
Exemple de code : chargement des données de profil au chargement de la page
Le code suivant case activée pour voir si un utilisateur est authentifié et, le cas échéant, charge la couleur d’arrière-plan préférée de l’utilisateur comme celle de la page.
function Page_Load()
{
if (Sys.Services.AuthenticationService.get_isLoggedIn())
{
Sys.Services.ProfileService.load();
}
}
function ProfileLoaded(numPropsLoaded, userContext, methodName)
{
document.documentElement.style.backgroundColor = Sys.Services.ProfileService.properties.BackgroundColor;
}
Utilisation d’un fournisseur de services d’authentification personnalisé
Les extensions AJAX ASP.NET vous permettent de créer un fournisseur de services d’authentification de script personnalisé en exposant vos fonctionnalités via un service web personnalisé. Pour être utilisé, votre service web doit exposer deux méthodes, Login
et Logout
; et ces méthodes doivent être spécifiées avec les mêmes signatures de méthode que la ASP.NET service web d’authentification AJAX par défaut.
Une fois que vous avez créé le service web personnalisé, vous devez spécifier le chemin d’accès à celui-ci, soit de manière déclarative sur votre page, par programmation dans le code, soit via le script client.
Pour définir le chemin d’accès de manière déclarative :
Pour définir le chemin d’accès de manière déclarative, incluez l’enfant AuthenticationService de l’objet ScriptManager dans votre page de ASP.NET :
<asp:ScriptManager ID="ScriptManager1" runat="server">
<AuthenticationService Path="~/AuthService.asmx" />
</asp:ScriptManager>
Pour définir le chemin dans le code :
Pour définir le chemin par programmation, spécifiez le chemin via le instance de votre gestionnaire de scripts :
protected void Page_Load(object sender, EventArgs e)
{
this.ScriptManager1.AuthenticationService.Path = "~/AuthService.asmx";
}
Pour définir le chemin d’accès dans le script :
Pour définir le chemin par programmation dans le script, utilisez la path
propriété de la classe AuthenticationService :
function Login()
{
var userTextbox = $get("txtUser");
var passTextbox = $get("txtPassword");
Sys.Services.AuthenticationService.set_path("./AuthService.asmx");
Sys.Services.AuthenticationService.login(userTextbox.value, passTextbox.value, false, null, null, LoginServiceCompleted, LoginServiceFailed, "Context Info");
}
Exemple de service web pour l’authentification personnalisée
<%@ WebService Language="C#" Class="AuthService" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Web.Script.Services;
[ScriptService]
[WebService]
public class AuthService : WebService
{
[WebMethod]
public bool Login(string userName, string password, bool createCookie)
{
Session["LoggedInUser"] = userName;
return true;
}
[WebMethod]
public void Logout()
{
Session.Abandon();
}
}
Résumé
ASP.NET services , en particulier les services de profilage, d’appartenance et d’authentification, sont facilement exposés à JavaScript dans le navigateur client. Cela permet aux développeurs d’intégrer leur code côté client au mécanisme d’authentification en toute transparence, sans dépendre de contrôles tels que UpdatePanels pour effectuer le gros travail. Les données de profil peuvent également être protégées à partir du client, en utilisant les paramètres de configuration web ; aucune donnée n’est disponible par défaut, et les développeurs doivent accepter les propriétés de profil.
En outre, en créant des implémentations de service web simplifiées avec des signatures de méthode équivalentes, les développeurs peuvent créer des fournisseurs de scripts personnalisés pour ces services de ASP.NET intrinsèques. La prise en charge de ces techniques simplifie le développement d’applications clientes riches, tout en offrant aux développeurs un large éventail de flexibilité pour répondre à des besoins spécifiques.
Bio
Scott Cate travaille avec les technologies web Microsoft depuis 1997 et est président de myKB.com (www.myKB.com) où il se spécialise dans l’écriture d’applications ASP.NET basées sur des solutions de base de connaissances. Scott peut être contacté par e-mail à l’adresse scott.cate@myKB.com ou son blog à ScottCate.com