is there any way to connect to citrix access gateway using some api, so that credentials for authentication are sent through that program, the user is authenticated and then is able to access internal resources. I saw about NITRO Api, and Web interface SDK...is this thing can be done using any of theses...which one of them is a better choice?Answer1:
There is an API available by using the COM object
WFICA.OCX (this component is included with the installation of the Citrix client).
I believe this provides what you are looking for - you can set properties for username and password. (Note: I haven't yet been able to get a working example for myself.)
Documentation for the API is available on the Citrix Developer Network: - <a href="http://community.citrix.com/display/xa/ICA+Client+Object+SDK" rel="nofollow">ICA Client Object SDK</a> - <a href="http://community.citrix.com/display/xa/Citrix+ICA+Client+Object+SDK+Overview" rel="nofollow">Citrix ICA Client Object SDK Overview</a>
There is also a detailed tutorial in <a href="http://blogs.citrix.com/2010/03/02/fun-with-the-ica-client-object-ico-and-net-console-applications/" rel="nofollow">Fun with the ICA Client Object (ICO) and .Net Console Applications</a> on the Citrix blog. I was first referred to this blog post by another Stack Overflow user after asking the question <a href="https://stackoverflow.com/questions/9911507/detect-termination-of-citrix-session-launched-by-kiosk-application" rel="nofollow">Detect termination of Citrix session launched by kiosk application</a>.