2010-05-24 2 views
2

내 ASP.NET 응용 프로그램에서 다른 컴퓨터의 로컬 Windows 사용자/그룹 (예 : Active Directory가 아닌)에 대해 인증/권한을 부여 할 수 있어야하며 원격 로컬 Windows의 암호를 변경할 수 있어야합니다. 계정.ASP.NET 응용 프로그램의 다른 컴퓨터에서 로컬 Windows 사용자에 대해 인증하는 방법은 무엇입니까?

예, Active Directory는 이러한 종류의 작업을 위해 제작되었습니다.하지만 불행히도 상위 버전은 이렇게해야 할 필요가 있습니다. 따라서 데이터베이스의 사용자에 대한 인증도 부족합니다.

그래서 같이하여 DirectoryEntry 및 Winnt는을 사용하여 시도했다 :

DirectoryEntry user = new DirectoryEntry(String.Format("WinNT://{0}/{1},User", 
      serverName, username), username, password, AuthenticationTypes.Secure) 

하지만 여러 사용자에 로그온 할 때이 예외가 발생합니다 서버에

다중 연결 또는 둘 이상의 사용자 이름을 사용하는 동일한 사용자가 공유 한 리소스는 허용되지 않습니다. 서버 또는 공유 리소스에 대한 이전의 모든 연결을 끊고 다시 시도하십시오.

내 DirectoryEntries가 사용중인 블록 내부에서 사용되고 있는지 확인하여 올바르게 처리되었지만 문제가 해결되지 않은 것 같습니다. 게다가 그것이 작동하더라도 두 사용자가 동시에 해당 코드 행을 공격하여 여러 연결을 만들 수 있으므로 어쨌든 깨지기 쉽습니다.

원격 컴퓨터의 로컬 Windows 계정에 대해 인증하고 그룹에 권한을 부여하고 암호를 변경하는 더 좋은 방법이 있습니까?

미리 도움을 주셔서 감사합니다.

답변

0

제 의견으로는 ASP.Net 스크립트에서이를 수행 할 수 없습니다. 서버에서 모든 클라이언트 컴퓨터가 사용자의 페이지에 액세스 할 수 있는지를 알아야하고이 추가 사용자 인증 및 암호 변경을 수행하기 위해 서버에 클라이언트가 액세스 할 수있는 충분한 권한을 제공해야합니다. 또한 이것은 성 가시다. 한 가지 해결책은 activex 컨트롤을 사용하고이 logic (사용자 인증 및 암호 변경)을 해당 activex 컨트롤에 쓰고 activex 컨트롤에 클라이언트에서 충분한 권한을 제공하는 것입니다. 약간 못 생겼지 만 이것이 ADS가없는 유일한 해결책입니다.

관련 문제