problema ao logar com usuario ad
29/11/2017
0
Olá,
Fiz uma aplicaçpão web em asp.net c#
Utilizo usuario AD para logar. Funciona normalmente em minha maquina. E publiquei em um servidor tambem funcionou usando iis7
Mas nao ta funcionando em um servidor que tem iis8. Na verdade nao sei se o problema eh iis mesmo.
Mas nao loga, so loga se deixar usuario com permissao de Administrator.
Uso esta classe para autenticao
ja fiz um teste adicionando isto no web.config, mas não funcionou
Fiz uma aplicaçpão web em asp.net c#
Utilizo usuario AD para logar. Funciona normalmente em minha maquina. E publiquei em um servidor tambem funcionou usando iis7
Mas nao ta funcionando em um servidor que tem iis8. Na verdade nao sei se o problema eh iis mesmo.
Mas nao loga, so loga se deixar usuario com permissao de Administrator.
Uso esta classe para autenticao
public class Impersonator { private WindowsImpersonationContext _impersonatedUser = null; private IntPtr _userHandle; public bool Logado { get; set; } public Impersonator(string Login, string Senha, string dominio) { try { Logado = false; //System.DirectoryServices.AccountManagement.UserPrincipal currentADUser; //currentADUser = System.DirectoryServices.AccountManagement.UserPrincipal.Current; //string emailUsuario = currentADUser.EmailAddress; //string Usuario = currentADUser.Name; //string NomeCompleto = currentADUser.Name; _userHandle = new IntPtr(0); string user = Login; string password = Senha; Logado = LogonUser(user, dominio, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref _userHandle); if (!Logado) throw new ApplicationException("Could not impersonate user"); if (Logado) { WindowsIdentity newId = new WindowsIdentity(_userHandle); _impersonatedUser = newId.Impersonate(); } } catch (Exception) { } } #region IDisposable Members public void Dispose() { if (_impersonatedUser != null) { _impersonatedUser.Undo(); CloseHandle(_userHandle); } } #endregion #region Interop imports/constants public const int LOGON32_LOGON_INTERACTIVE = 2; public const int LOGON32_LOGON_SERVICE = 3; public const int LOGON32_PROVIDER_DEFAULT = 0; [DllImport("advapi32.dll", CharSet = CharSet.Auto)] public static extern bool LogonUser(String lpszUserName, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); [DllImport("kernel32.dll", CharSet = CharSet.Auto)] public extern static bool CloseHandle(IntPtr handle); #endregion }
ja fiz um teste adicionando isto no web.config, mas não funcionou
<identity impersonate="true" />
Jefferson
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)