.NET Framework 4에서 Windows 인증을 사용하는 인트라넷 ASP.NET MVC3 웹 응용 프로그램이 있습니다. 모든 코드가 사용자를 인증합니다. 기본 인증을 위해 Windows 인증을 사용하고 Active Directory 사용자를 SQL Server 2008의 테이블에있는 사용자에게 연결하여 내 응용 프로그램과 관련된 추가 사용자 속성을 연결합니다. 이 모든 것이 잘 작동합니다.ASP.NET MVC IIS 7에 배포 할 때 모든 사용자를 검색하는 Active Directory 코드가 작동하지 않습니다.
admins가 Active Directory 사용자를 선택하여 SQL 사용자 테이블에 추가하고 (위 참조) 특정 사이트 속성 (IsAdmin, ShoeSize 등)을 입력 할 수있는 섹션이 있습니다. 이 화면에는 사용자 이름과 Active Directory 사용자의 전체 이름 속성을 보유한 사용자 지정 개체에서 모든 Active Directory를 검색하기 위해 채울 드롭 다운 목록이 있습니다. 웹 응용 프로그램이 IIS 7에 배포 할 때 몇 가지 이유를 들어
public IQueryable<ActiveDirectoryUser> ActiveDirectoryUsers
{
get
{
// get list of users in the Active Directory
DirectoryEntry dirEntry = new DirectoryEntry("WinNT://" + Environment.UserDomainName);
List<DirectoryEntry> activeDirectoryUsers = dirEntry.Children.Cast<DirectoryEntry>()
.Where(c => c.SchemaClassName == "User").ToList();
// populate a custom class I have to hold the active directory user's username and full name property values
return activeDirectoryUsers
.Where(u => !string.IsNullOrEmpty(u.Properties["FullName"].Value.ToString()))
.Select(u => new ActiveDirectoryUser()
{
NetworkId = String.Format(@"{0}\{1}", Environment.UserDomainName, u.Properties["Name"].Value),
FullName = u.Properties["FullName"].Value.ToString()
}).AsQueryable();
}
}
Visual Studio에서 IIS 익스프레스에서 사이트를 실행하는 경우 그러나, 이것은 완벽하게 작동이 코드는 어떤 결과를 반환하지 : 여기에이 코드입니다. 왜 이런 일이 일어날 지 아이디어가 있습니까? 나는 IIS 설정을 범인으로 찾고 있었지만 도움이되는 것을 찾지 못했습니다. Active Directory 사용자를 검색하는 방식을 변경해야합니까? 고맙습니다!
감사합니다. DirectoryEntry 개체 생성자에서 사용자 이름과 암호를 지정하는 방법을 찾았습니다. , 그래서 나는 IIS가 실행되고있는 사용자 계정에 대해 걱정할 필요가 없다.이 대답은 나를 해결책으로 생각 나게했다. 고마워! –