2011-09-06 3 views
2

(내가 데모 흙을 보았습니다.하지만 HTTP 웹에 사용하고 있습니다. TCP/IP로 전환하는 방법을 모릅니다.) 저는 Delphi의 새로운 기능입니다. DataSnap 및 클라이언트 로그인 양식 (SQL Server에서 사용자 암호 확인)을 사용하고 역할을 적용하십시오. 어떤 코드 나 대답도 감사 할 것입니다 미리 감사드립니다.Delphi XE 데이터 스냅 TCP/IP 클라이언트 로그인 양식

답변

1

당신이하고 싶은 일과 현재 제대로 작동하지 않는 것에 대해 좀 더 명확하게 설명해 주시면 기꺼이 도와 드리겠습니다. (응용 프로그램으로 수행하려는 작업, 인증을 위해 지금까지 무엇을했는지, 정확히 무엇을 고집하는지)

처음부터 다시 시작하려면 다음을 수행하십시오.

  • "DataSnap 서버"마법사를 사용하여 새 서버 프로젝트를 생성하십시오. Indy (WebBroker 대신)를 사용하고 TCP/IP 연결을 허용합니다. (헤비급 콜백의 경우에도 마찬가지입니다.)

  • 마법사에서 속성을 설정하는 동안 "인증"옵션 ("인증"은 필요하지 않음)을 선택해야합니다.보다 복잡한 인증/권한 부여 메커니즘이 필요한 경우에만 선택하십시오.)

  • 열고 마법사가 생성되고 마법사에서 인증을 확인하면 자동으로 추가 "DSAuthenticationManager1UserAuthenticate"기능을 (찾기 코드 탭

  • 에 스위치 ServerModule 장치를.)

  • 이 기능에서는 사용자 이름 ("사용자")과 암호 ("암호")에 대한 액세스 권한이 있습니다. 데이터베이스에 연결하고 일치하는 사용자가 있는지, 그리고 사용자가 갖고있는 역할을 확인하십시오. 그런 다음이 메서드에 전달 된 UserRoles 컬렉션을 사용자가 가진 모든 역할로 채 웁니다.

  • 사용자에게 역할을 지정하면 서버 메서드에서도 할당 된 역할을 허용하거나 거부 할 때까지 아무 것도 수행하지 않습니다. Object Inspector에서 디자인 타임에 TDSAuthenticationManager 구성 요소에서이 작업을 수행 할 수 있습니다. (ServerModule 형식). 수정할 수있는 역할 컬렉션이 있습니다.

  • 또는 서버 메서드에 코드의 특성을 추가 할 수 있습니다. 당신은 예를 들어이를 넣을 수 있습니다 : 인 EchoString을 의미합니다

[TRoleAuth('admin')] 
function EchoString(String: Value): String; 
만 '관리자'역할을 가진 사용자가 호출 할 수 있습니다.

또는이 : 인 EchoString를 호출 할 수있는 '관리자'역할이있는 사용자를 제외하고 사람을 의미

[TRoleAuth('', 'admin')] 
function EchoString(String: Value): String; 

.

또는이 : 인 EchoString를 호출 할 수 있습니다 자신의 역할 중 하나 (또는 ​​조합)와 같은 '관리', '고객'또는 '방문자'이있는 모든 사용자를 의미

[TRoleAuth('admin,guest,visitor')] 
function EchoString(String: Value): String; 

.

참고 : TRoleAuth 특성을 사용하려면 uses 절에 DSAuth 단위를 추가해야합니다. 그렇지 않으면 역할 특성이 무시됩니다.

클라이언트에서 TSQLConnection 구성 요소를 추가하십시오. 드라이버를 "Datasnap"으로 설정 한 다음 확장하십시오. 호스트 및 포트 값을 설정하십시오. 여기에이 설정에 대한 자세한 내용보기 : 또한

http://blogs.embarcadero.com/mathewd/2011/07/12/programmatically-set-datasnap-credentials-on-a-tsqlconnection/

는, 내가 이전에 인증에 대해 내 블로그에 게시 한 : http://blogs.embarcadero.com/mathewd/2010/09/12/authentication-and-authorization-with-datasnap-and-rest/

나는이 도움이되기를 바랍니다.

매트

관련 문제