you can try using Microsoft.ASPNET.Providers to stored Machine ID\Value in each customeproperties profiles. ASP.NET is goob based to promote personalised websites.
In web.config,
<profile defaultProvider="DefaultProfileProvider">
<properties>
<add name="MachineID" />
<add name="MachineGenres" type="System.Collections.Generic.List`1[System.Int32]" />
</properties>
<providers>
<add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="MachineConnectionString1" applicationName="/" />
</providers>
</profile>
When Read back, compare with current Machine ID with profiles value
ProfileBase myprofile = HttpContext.Current.Profile;
List<Int32> listitem_ = new List<Int32>();
listitem_ = (List<Int32>)myprofile.GetPropertyValue("MachineGenres");
var machineid = (string)myprofile.GetPropertyValue("MachineID");
When Write
listitem can be set back into profile by using SetPropertyValue("MachineGenres",listitem).
You can stored a list of machine ID in list under MachineGenres or single in MachineID.
It will keep track in database. Make sure Provider database and your system database stored in right same database.
PS.:All custom profiles is stored right differently based on different login in single lines belong to personel profiles.
Be Careful install right version for Entityframework 5.0 worked only in Microsoft providers 1.2 and Some visual studio doesn't suppport too much higher version than that.