Partager via


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 la loginCompletedCallback propriété est appelé.
  • Si l’appel au service web échoue, le failedCallback paramètre de defaultFailedCallback 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 la logoutCompletedCallback propriété est appelé.
  • Si l’appel au service web échoue, le failedCallback paramètre de defaultFailedCallback 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