Publié mercredi 28 avril 2010 00:40 par Audrey

[RIA Services] Authentication Domain Service et Authentification Windows


Lors du développement d'une application Silverlight pour un client, s'est posé la question de l'authentification. La grande majorité de leurs applications fonctionnent avec une authentification Windows suivant les rôles attribués aux utilisateurs dans l'Active Directory. Pour en faire de même avec mon application Silverlight, j'ai utilisé l'Authentication Domain Service.

Dans le projet Web, il faut ajouter un nouvel élément, un Authentication Domain Service :



Deux classes sont alors créées :

[EnableClientAccess]
public class AuthenticationDomainService : AuthenticationBase<User>
{
   // To enable Forms/Windows Authentication for the Web Application,
   // edit the appropriate section of web.config file.
}

public class User : UserBase
{
   // NOTE: Profile properties can be added here
   // To enable profiles, edit the appropriate section of web.config file.

   // public string MyProfileProperty { get; set; }
}
  • AuthenticationDomainService (qui hérite de AuthenticationBase<User>) : qui va contenir les informations d'authentification
  • User (qui hérite de UserBase) : qui va contenir les informations de l'utilisateur
Il faut alors compiler le projet Web, afin que le code soit généré du côté Silverlight.

Ensuite il faut modifier le Web.config de notre projet Web pour lui indiquer que l'on souhaite faire de l'authentification Windows, et ajouter le provider "WindowsTokenRoleProvider" pour récupérer les informations concernant les rôles des utilisateurs Windows :

<system.web>

  <authentication mode="Windows" />

  <roleManager defaultProvider="WindowsProvider" enabled="true" cacheRolesInCookie="false">
     <providers>
         <add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
     </providers>
  </roleManager>

</system.web>


Puis modifier, le App.xaml.cs du côté du projet Silverlight pour lui indiquer que l'on souhaite utiliser notre WebContext avec une authentification Windows :

WebContext webContext = new WebContext();
webContext.Authentication = new WindowsAuthentication();
this.ApplicationLifetimeObjects.Add(webContext);

Et enfin, on peut récupérer les informations de l'utilisateur dans notre MainPage.xaml.cs en utilisant la méthode "LoadUser", et ensuite la méthode "IsInRole" pour vérifier si l'utilisateur possède le rôle souhaité :

WebContext.Current.Authentication.LoadUser().Completed += (s, args) =>
{
   User myUser = WebContext.Current.User;
   if (myUser.IsInRole("Everyone"))
   {
       string name = myUser.Name;
   }

}

Et voici les informations que l'on obtient pour l'utilisateur authentifié dans cette session Windows :


Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01