Sorry for the ambiguous question but here I go.
On each page a have a partial view displaying different theme options. These themes are just different css classes fo
You could use a concept known as Profile
With profiles you can declare the properties you would like to expose to your users and this works for anonymous users
Basically the profile properties are stored in cookies, therefore you can configure when they should expire and other cookies-related settings
Your profile properties are compiled as part of the top-level items compilation - AKA Compilation Life-Cycle in ASP.Net, therefore they will be exposed as strongly-typed properties through the Profile
class
For example:
<configuration>
<system.web>
<anonymousIdentification enabled="true"/>
<profile defaultProvider="AspNetSqlProfileProvider" enabled="true">
<properties>
<add name="FirstName"/>
<add name="LastName"/>
<add allowAnonymous="true" name="LastVisit" type="System.Nullable`1[System.DateTime]"/>
<group name="Address">
<add name="Street"/>
<add name="PC"/>
<add name="InternalNumber" type="System.Int32" defaultValue="0"/>
</group>
<add name="EmployeeInfo" serializeAs="Binary" type="EmployeeInfo"/>
</properties>
</profile>
</system.web>
</configuration>
void Application_EndRequest(object sender, EventArgs e)
{
if (Profile != null)
{
Profile.LastVisit = DateTime.Now;
Profile.Save();
}
}
Additionally, ASP.Net lets you access the properties in JavaScript, using Microsoft AJAX components:
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<profileService enabled="true" readAccessProperties="LastVisit" writeAccessProperties="LastVisit"/>
<jsonSerialization maxJsonLength="102400" recursionLimit="100" />
</webServices>
</scripting>
</system.web.extensions>
</configuration>
<script type="text/javascript" src="Scripts/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(function () {
$("#profile").click(function () {
Sys.Services.ProfileService.load();
Sys.Services.ProfileService.properties.LastVisit = new Date();
Sys.Services.ProfileService.save(
null,
function (m) {
alert(m);
},
function (e) {
alert(e);
},
null
);
});
Sys.Services.ProfileService.load(null, function (r) {
$("#res").append("<br/>");
$("#res").append(Sys.Services.ProfileService.properties.LastVisit.toString());
$("#res").append("<br/>");
}, function (m) {
$("#res").append(m.get_message());
}, null);
});
</script>
<asp:ScriptManager runat="server" ID="sm">
<AuthenticationService />
<ProfileService />
<RoleService />
</asp:ScriptManager>