(我看到Demo Dirt - 但它用於HTTP Web,我不知道如何將其切換到TCP/IP) 我是新來的德爾福 - 我需要幫助關於使用DataSnap和客戶端登錄表單(從SQL Server檢查用戶密碼)然後應用角色。任何代碼或答案將欣賞 預先感謝Delphi XE Data Snap TCP/IP客戶端登錄表單
回答
如果你能更清楚地解釋你想要做什麼以及目前不能工作,我很樂意爲你提供幫助。 (你正在嘗試與應用程序來完成的,你有這麼遠的認證是什麼,以及你是卡在什麼)
如果你想從頭開始,這是你會怎麼做:
使用「DataSnap Server」嚮導來創建新的服務器項目。這將使用Indy(而不是WebBroker)並將允許TCP/IP連接。 (即使是重量級回調)。
在嚮導中設置屬性時,請務必檢查「Authentication」選項(不需要「Authorization」。只有當您需要更復雜的認證/授權機制時。 )
打開向導生成,並切換到代碼標籤
找到「DSAuthenticationManager1UserAuthenticate」功能(如果在嚮導檢查驗證自動添加ServerModule單元。)
在此功能中,請進行身份驗證...您可以訪問用戶名(「用戶」)和密碼(「密碼」)。連接到數據庫,並查看是否有匹配的用戶以及用戶具有的角色。然後,使用用戶擁有的所有角色填充傳入此方法的UserRoles集合。
一旦你在用戶上指定了角色,那些角色就不會做任何事情,除非你的服務器方法也允許或拒絕角色分配給他們。您可以在設計時在Object Inspector中的TDSAuthenticationManager組件中執行此操作。 (ServerModule表單)。有一個你可以修改的角色集合。
或者,您可以將代碼中的屬性添加到您的服務器方法中。你可以把這個例如:
[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;
這意味着與「管理」,「客戶」,或「先生」作爲自己的一個角色(或任意組合)可以調用EchoString任何用戶。
注意:要使用TRoleAuth屬性,需要將DSAuth單元添加到您的uses子句中,否則角色屬性將被忽略。
在客戶端上,添加一個TSQLConnection組件。將驅動程序設置爲「Datasnap」,然後展開它。設置主機和端口值。查看更多關於這裏設置此功能:
而且,我以前在我的博客上發佈有關認證: http://blogs.embarcadero.com/mathewd/2010/09/12/authentication-and-authorization-with-datasnap-and-rest/
我希望幫助。
墊子
- 1. 如何在Delphi中使用HTTP客戶端登錄到網站xe
- 2. 使用Web客戶端登錄表單?
- 3. 如何在Delphi中使用HTTP客戶端API xe
- 4. Delphi XE斷開或終止datasnap客戶端會話
- 5. 用於Delphi xe的64位Oracle客戶端
- 6. Android apache客戶端登錄
- 7. Delphi XE + SOAP + SSL
- 8. HTML/Javascript客戶端用戶登錄
- 9. Web客戶端登錄失敗
- 10. C#Web客戶端登錄accounts.google.com時
- 11. delphi XE 5程序單元
- 12. Bigcommerce客戶登錄API(單點登錄)無效登錄問題
- 13. PHP安全登錄 - 客戶端選項?
- 14. 如何從CXF Rest客戶端登錄?
- 15. C#Web的客戶端登錄了
- 16. 腳本或客戶端登錄
- 17. WCF應用層+客戶端登錄
- 18. 在客戶端電話上登錄APK
- 19. Janrain Google+登錄無效的客戶端
- 20. 從服務登錄到客戶端
- 21. Rikulo安全客戶端登錄
- 22. 登錄期間客戶端斷開
- 23. Firebase谷歌登錄兩個客戶端
- 24. Sugar CRM - Java客戶端 - 登錄
- 25. Google客戶端 - 使用Java登錄?
- 26. CakePHP客戶端登錄問題
- 27. Google Drive API的客戶端登錄
- 28. REST客戶端網站登錄
- 29. Python遠程登錄客戶端