2010-10-14 4 views

Répondre

0
[OperationContract] 
    public string GetCurrentUserWindowsLogin() 
    { 
     return Environment.UserName; 
    } 

    [OperationContract()] 
    public User DoLogIn(string login, string password) 
    { 

     string userName = String.Format(@"ELEGION\{0}", login); 
     string SERVER = "LDAP://Caesar.elegion.local"; 

     User user = null; 

     try 
     { 
      DirectoryEntry entry = new DirectoryEntry(SERVER, userName, password, AuthenticationTypes.ReadonlyServer); 
      object nativeObject = entry.NativeObject; 

      if (nativeObject != null) 
      { 
       HeRMeSSunRiseDBEntities ent = EntitySingleton.Entities; 
       user = ent.Users.Where(l => l.Login == login && l.IsDisabled == false).FirstOrDefault(); 
       if (user != null) 
       { 
        user.ADObject = entry.Guid.ToString(); 
        ent.SaveChanges(); 
        return user; 
       } 
      } 
     } 
     catch (DirectoryServicesCOMException cex) 
     { 
      Debug.Write(cex.Message); 
     } 
     catch (Exception ex) 
     { 
      Debug.Write(ex.Message); 
     } 



     return user;} 
+0

Je corrige ce problème. – isxaker

0

Vous devez utiliser l'authentification ASP.NET pour cela. Afin de mettre en œuvre ceci, je vous recommande fortement d'utiliser quelque chose comme RIA Services, qui contient toute la plomberie nécessaire pour activer l'authentification ASP.NET dans une application Silverlight. Lorsque l'authentification ASP.NET est activée, vous pouvez modifier votre fichier de configuration pour utiliser un fournisseur d'identité AD, comme dans toute autre application Web ASP.NET.

Plus d'informations sur le ActiveDirectoryMembershipProvider sur MSDN