You can setup user-selectable skins by using a very simple skin that acts as a loader. For instance, here's a skin that loads a different skin based on the browser:
Switcheroo.ascx
===========
<%@ Control language="c#" %>
<script runat="server">
protected void Page_Load(object s, EventArgs e)
{
string browser = Request.Browser.Browser.ToLower();
string version = Request.Browser.MajorVersion.ToString();
if (Request.QueryString["debug"] != null)
Response.Write(browser + version + ".ascx");
else
{
try
{
this.Controls.Add(this.LoadControl(browser + version + ".ascx"));
}
catch
{
this.Controls.Add(this.LoadControl("Default.ascx"));
}
}
}
</script>
You can use this same technique to look-up a skin name from a user's profile and have it displayed, or alternately, present a list of available skins and once a user makes a selection, store it in a cookie with the portal ID as part of the key. On subsequent visits, you can force the display of the last selected skin.
If this is of interest to more people, I can add it to the Skinergy suite.
Nik
Nik Kalyani
Speerio, Inc.
[DotNetNuke and ASP.Net solutions
here]