views:

37

answers:

1

Is there anyway to return a machine specific identifier from an out of browser SilverLight 4 App? This is to stop people installing my product with one licence key, and then copying the files onto someone else's machine. Normally MAC address would be the way to go, but I don't think you are able to do so from SilverLight.

+1  A: 

As far as I know, there is no way.

However, what you can do is generate a key based on the license file and store it in isolated storage. While not entirely foolproof, you can send it, and use this on the server to do some guessing if people are copying the key/GUID to multiple machines as well. With the "obfuscated" path of local storage, and it's per-user / per-machine design it's also difficult for users to copy.

Similar to this, there was a discussion on the silverlight forums about uniquely identifying a machine with silverlight. Another discussion has someone writing to isolated storage when connected and having the application verify the encrypted key that was stored there - releasing or moving the license requires reconnecting to the web.

Philip Rieck
Thanks @Phillip, that was what I had suspected. What do you mean by licence file? My work around idea would be to store a hash of the PersonalFolder path in a file in the isolated storage folder.
Ben
That would be fine - by "license file" I mean any general thing you are using to license your app - key, downloaded file, secret color, whatever :). The key takeaway is to store something in isolated storage that says "I am licensed here."
Philip Rieck