对于这个含糊不清的问题感到抱歉,但我在这里。
在每个页面上,a都有一个显示不同主题选项的局部视图。这些主题只是页面中元素颜色的不同css类。如何允许任何访问者选择不同的主题,并使其在所有后续请求和会话中保持不变,即使用户未登录也是如此。
我想这必须在客户端完成,而我能想到的就像饼干一样。遗憾的是,我还没有真正在ASP.NET中对它们进行过实验,并且因为它的基本概念,因此无法想到Google搜索的正确措辞。
如果有人能指出我正确的方向,我会很感激。感谢
答案 0 :(得分:0)
您可以使用称为 Profile
的概念使用配置文件,您可以声明要向用户公开的属性,这适用于匿名用户
基本上,配置文件属性存储在cookie中,因此您可以配置它们何时到期以及其他与cookie相关的设置
您的个人资料属性是作为ASP.Net中 top-level items compilation - AKA Compilation Life-Cycle 的一部分编译的,因此它们将通过{{公开为强类型属性1}}类
例如:
Profile
<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>
此外,ASP.Net允许您使用Microsoft AJAX组件访问JavaScript中的属性:
void Application_EndRequest(object sender, EventArgs e)
{
if (Profile != null)
{
Profile.LastVisit = DateTime.Now;
Profile.Save();
}
}
<configuration>
<system.web.extensions>
<scripting>
<webServices>
<profileService enabled="true" readAccessProperties="LastVisit" writeAccessProperties="LastVisit"/>
<jsonSerialization maxJsonLength="102400" recursionLimit="100" />
</webServices>
</scripting>
</system.web.extensions>
</configuration>