2010-10-14 23 views

回答

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

更多信息我解決這個問題。 – isxaker 2010-10-14 18:02:51

0

您應該使用ASP.NET身份驗證來實現此目的。爲了實現這一點,我強烈建議你使用RIA Services,它包含在Silverlight應用程序中啓用ASP.NET驗證所需的全部配件。

啓用ASP.NET身份驗證後,您將能夠編輯您的配置文件以使用AD身份提供程序,就像在任何其他ASP.NET Web應用程序中一樣。有關ActiveDirectoryMembershipProvider上MSDN