2010-06-23 2 views
0

인트라넷 웹 응용 프로그램을 개발 중이며 VB를 Active Directory에 연결하는 방법을 배우고 있습니다. 우리는 위치 특정 사용 권한을 수행 할 것입니다. 그리고 사장님은 Active Directory에 연결하여 사용자 위치를 얻으시기 바랍니다.VB.NET을 사용한 인트라넷 Active Directory 인증

내가 할 일은 사용자 이름을 얻는 것 뿐이라고 생각하지만, 그 일을하는 가장 좋은 방법은 무엇인지 모르겠습니다. 우리는 Microsoft의 유일한 상점이므로 IE와 IIS는 오늘의 주문입니다. 인트라넷에 액세스하려면 도메인을 사용하여 컴퓨터에 로그온해야하므로 한 수준의 보안 수준을 갖지만 인증을 받아 사용자에게 변경 권한이 있는지 확인해야합니다. 우리는 AD 정보에 수정 자 (이미 없으면)를 갖거나 데이터베이스에 사용 권한 테이블을 보관할 생각이지만 전자가 선호됩니다.

IIS에는 인증을 허용하거나 필요로하는 기능이 있지만 그 기능이 어떻게 작동하는지 정확하게 알 수는 없습니다.

그럼 사용자 자격증 명을 얻는 가장 쉽고/가장/다소 (가장 안전한) 방법은 무엇입니까? 나는 항상 로그인 페이지를 할 수 있지만 배경에서 광고 자격 증명을 얻을 수 있다면 훨씬 더 좋을 것입니다.

감사합니다.

답변

2

IIS 사이트에 대해 익명 인증을 사용하지 않도록 설정하고 대신 windows-auth를 사용하도록 설정해야합니다.

은 지금 당신의 Web.config에 가서 다음

<authentication mode="Windows"> 
... 
</authentication> 

http://msdn.microsoft.com/en-au/library/532aee0e(v=VS.80).aspx

&

이 neccesary

<identity impersonate="true" /> 

http://msdn.microsoft.com/en-us/library/aa292118(VS.71).aspx

을 참조하는지 변경 지금 6,

당신은 사용자가 특정 그룹에있는 경우 당신은 당신이 VB.net에서 samacountname에 액세스 할 방법

HttpContext.Current.User.IsInRole("YourActiveDirectoryGroup") 
+0

나는 실제로이 게시물에서 같은 정보를 우연히 발견 : http://www.tek-tips.com/faqs.cfm?fid=5440 –

+0

완벽! 이것은 내가 찾고 있었던 바로 그 것이다. –

1

IIS는 사용자의 samaccountname (Windows 2000 이전 버전 로그온)에 액세스 할 수있는 통합 인증을 사용하도록 구성 할 수 있습니다. 이를 통해 AD에 대한 LDAP 쿼리를 수행하고 그룹 구성원을 확인할 수 있습니다. 사용자가 CanModifyStuffGroup의 멤버 인 경우 (AD에서 작성하고 사용자를 추가 한 경우) 변경을 허용하거나 그렇지 않으면 읽기 전용 버전을 제공하십시오.

+0

을 사용할 수 있습니다 확인

HttpContext.Current.User.Identity.Name 

으로 현재 사용자를 얻을 수 있어야합니다 ? 나는 많은 성공으로 인터넷 검색입니다 ... –

+0

내가 쓴 이전 ASP.Net 응용 프로그램에서 VB.Net의 다음 줄을 가져 왔습니다. samaccount = HttpContext.Current.User.Identity.Name 그러나 회사 정책을 둘러싼 변경 과정에서 AD 그룹을 유지 관리하는 대신 자체적으로 권한 데이터베이스를 유지 관리했습니다. –

+0

아, 훌륭함. 감사! –