Is there a programattic API to access vault info on a SanDisk SecureAccess drive? - usb-drive

The simple question version is as stated: Is there a programmatic API to access vault info on a SanDisk SecureAccess drive (without installing the SecureAccess manager UI)?
Here's what the business requirements are though, in case anyone can suggest an alternate solution.
Secure information on USB drive so that it cannot be copied to another drive.
Access this information via C# .NET 2.0.
Cannot call a remote service to check for keys/validate/etc. It must be self-contained.
We were previously using SanDisk USB drives with U3 but this technology has been discontinued. We basically need a "1 application instance per UBS drive" solution.

Related

How is the tsclient share created (in terms of Windows API)?

Using the Windows RDP Client (mstsc.exe), I can share local resources with the host I'm connecting to.
For example if I share C:\, I can use it in the RDP session in \\tsclient\c.
What Windows API does the server side use to create the \\tsclient share?
(I'm not referring to the Virtual Channels within the RDP session, rather the Windows API calls for registering \\tsclient itself).
I'd like to create a virtual file system using the same approach, as an alternative to using a third party VFS driver such as Dokan or WinFsp.

What does OpcEnum.exe do? Where does Windows store the list of available OPC servers?

I'm working on developing an OPC client application for a Windows 7 system which is talking to an OPC server running in Rockwell RSLinx Classic.
The RSLinx Classic package includes an OPC Test Client. The Client program produces a list of OPC Servers to which I can connect (there are a few extra servers on my machine from National Instruments, I'm not sure how they got there). I choose a server and connect. I can monitor items on the server which update in real-time. So I know that I have a working client-server connection.
Now I want to write my own client. How can I get that OPC Server list myself? My research suggests that the Rockwell and/or the National Instruments software installed a program on my computer called OpcEnum.exe in the folder C:\Windows\SysWOW64. It’s not on the PATH. The OpcEnum service shows up on the System Services registry, and it's running. If you execute OpcEnum.exe directly from its folder, it runs... but outputs nothing to the console. What does it do? It has no -h or –help command line option. Presumably, it updates a data file somewhere which enumerates the server names.
I cannot find any documentation which describes OpcEnum.exe in enough detail to understand it.
Any advice you have is appreciated, thanks!
OPCEnum is not specific to Rockwell. It is part of common OPC infrastructure, and described in OPC "Classic" specifications (https://opcfoundation.org/developer-tools/specifications-classic/data-access/ ).
There you will find that it exposes its functionality as a COM component. So, if you want to use it, you need to create an instance of a specific COM object (by its CLSID), acquire the documented interface(s), and use their methods to obtain list of COM servers on the computer, or other information about them.
OPCEnum can be installed as part of some software installation (by Rockwell), but it comes from "OPC Core Components" by OPC Foundation (https://opcfoundation.org/developer-tools/samples-and-tools-classic/core-components/ ).
The information about the servers is stored in the registry. In fact, OPC servers use mainly a standard Microsoft COM registration and their information is stored the same way as other COM components, but OPCEnum know the component category/categories of the servers, so it can filter out just the OPC Servers for you; and in OPC 1.0 the servers were not classified into component category, so OPCEnum relies on an extra registry key ("OPC") to find them.

What is the capability of PWA for Windows?

I'm totally new to PWA (rather I'm still considering adopting PWA or go Electron).
Looking at the concept and guides of the app on the web, it seems that the capability of it is to this extent, thus;
Access web APIs securely and easily
Yes, as it is the alternative implementation of web apps.
Access local storage of the PC for the app
Yes, through HTML5 web storage.
Access any local files in the PC
No?
Communicate with another desktop app through TCP connection
Yes? By posting/getting some query to localhost for example?
Obtain system info like PC status or installation path of another desktop app
No?
How many of my understandings are correct? Is there another capability or limitation to be specially noted?

Can only Drive apps use the Drive API?

I want to write a program that downloads files from my Drive systematically, and uploads them elsewhere in my Drive. In order to use the Drive API, does my program have to be on the Drive app store? Or can it simply be used privately and locally on my computer.
The Google Drive API is just a rest api.
REST-compliant Web services allow requesting systems to access and manipulate textual representations of Web resources using a uniform and predefined set of stateless operations.
Which basically means access runs over a webserver. Any programing language that can handle a HTTP POST and HTTP Get can access these rest APIs. You can write an application in java or C# that sits on your local pc and accesses Google drive API.
I am not sure what you mean by drive app store. To my knowledge drive does not have its own dedicated app store.
Note: to access Google APIs you must register your application on Google Developer console

Debugging a Windows CE application which uses a Microsoft Azure service

This question has probably less to do with actual programming and more to do with environment setup.
I'm developing an application for a Windows CE device, which will use a service hosted in Microsoft Azure. Obviously, this is all under development, and the service itself has not yet been uploaded to Azure. So I'm using the emulators provided by MS to deploy the service locally. Also, I don't think uploading the service to Azure just to debug it is a good idea, as that could net us a bill for Azure we don't yet want to pay.
Also, please note, I'm using VS2008 for the Windows CE project and VS2010 for the Azure project (thank you MS for dropping support for mobile devices -_-).
The problem is, the service seems to be accessible only via 127.0.0.1 or localhost, and if I physically connect a Windows CE device or use an emulated one, it becomes a new entity on the network, and cannot access that service any more.
How can I debug my Window CE application and have it see the service, whilst still being able to debug the service itself?
You are correct, the development fabric (the compute emulator that allows you to build an azure application and debug it locally) is only meant for local development. There are some hacks that allow you to get around that, but I wouldn't recommend it.
My recommendation would be to spin up the service in a more traditional hosting environment, at least in these early stages. You can define it as a web app just as you always would have, and get it functioning. Then, when you know its mostly complete, create a cloud service project and do an add existing to bring your web app into the cloud service solution. Once in, its a simple matter to add the web app as a web role.
From there, you can complete testing of the service in both the local and hosted azure environments as needed. This allows you to minimize your development costs while still leveraging the power of the cloud. As an upside, you also have done most of the basic work to ensure your service is compatible with multiple deployment scenarios giving you a greater degree of choice for its final production state.
OK, I don't know if this was intentional, or if I found one of the mentioned hacks, but I saw that IIS hosts the Azure site I created on port 5100, and the binding for this site is *, so it accepts all connections.
Using this I could access the service from my emulator, and I could still debug all Azure related stuff.

Resources