1

asp.net web application을 생성 중입니다. 나는 로그인에 활성 디렉토리를 사용했습니다. 나는 Validusers이라는 그룹을 가지고 있는데, 사용자가 로그인했을 때 유효 사용자 그룹을 검사합니다. 사용자가 그룹에 있으면 로그인에 실패한 경우 로그인이 성공합니다.asp.net c에서 활성 디렉토리 인증을 사용하여 로그인하십시오. #

나는 모든 것을했는데 내 로컬 컴퓨터에서는 잘 작동하지만 웹 사이트를 게시 할 때는 작동하지 않습니다. 내가 error.i 그것이 Validusers의 group.if에 로그인 사용자를 확인합니다 참조

PrincipalContext ctx = new PrincipalContext(ContextType.Domain, "DomainName"); 
System.Security.Principal.WindowsIdentity MyIdentity = System.Security.Principal.WindowsIdentity.GetCurrent(); 
string LogUser = MyIdentity.Name.ToString(); 
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, LogUser); 
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "Validusers");Validusers---->Groupname 
if (user.IsMemberOf(group)) 
{ 
    Login success 
} 
else 
{ 
Login Failed 
} 

에 대한 코드 아래에 익숙해 게시하는 동안, 그것은 좋은 일 내 컴퓨터에 다음과 같은 오류

Logon failure: unknown user name or bad password. 

있어 사용자가 그룹에 존재하면 로그인은 성공한 다른 실패한 로그인입니다. 이 웹 사이트를 게시 할 때 오류가 발생했습니다. 약간의 해결책을 제시하십시오.

+0

게시처는 어디입니까? IIS에 ** 통합 Windows 인증 ** 체크 표시가 있습니까? – christiandev

+0

웹 사이트를 게시해야합니다. 웹 사이트를 게시하고 있습니다. –

+0

이것은 인트라넷 응용 프로그램이며 도메인 내의 서버에 게시하고 있습니까? – christiandev

답변

0

개발 컴퓨터와 웹 서버의 도메인 및 네트워크 관계에 대한 정보는 거의 제공하지 않았지만 웹 서버에는 코드에 의존하는 Active Directory 서버. 그런 다음 웹 서버가 AD 디렉토리를 쿼리하는 것이 불가능해야합니다. 웹 서버와 AD 서버가 동일한 네트워크에있는 경우 웹 서버와 AD 서버의 방화벽 설정을 사용하여 통신 할 수 있는지 확인해야합니다. 웹 서버와 AD 서버에 통신에 문제가없는 경우 웹 서버에서 실행중인 코드에 "유효성 검사기"의 사용 가능 여부를 확인해야합니다. IIS 응용 프로그램은 응용 프로그램을 호스팅하는 응용 프로그램 풀에 대해 정의 된 사용자 계정으로 실행되므로 응용 프로그램 풀 ID에 해당 정보에 액세스 할 충분한 권한이 있는지 확인해야합니다.

관련 문제