если у вас есть заранее определенные темы, которые пользователь может выбрать для своих будущих входов в систему, вы можете создать таблицу тем в своей базе данных и сохранить соответствующий идентификатор темы для пользователя.если пользователь не выбирает какую-либо тему, у вас будет тема по умолчанию.
И вы создадите css файлы тем отдельно на вашем сервере, каждая тема будет иметь свой файл.
Однако, если пользователь выбирает тему для своих будущих входов, сохраните ее в своей базе данных после того, как вы аутентифицируете пользователя при входе в систему.Передайте значение в любое скрытое поле в форме и используйте значение id из скрытого поля. Измените таблицу стилей и загрузите один и тот же файл на каждую веб-страницу, используя javascript.
После вашего комментария:
если хотитечтобы дать пользователю контроль над созданием своих собственных стилей, я думаю, что в основном это будет для изменений цветов и шрифтов, вы можете создавать различные CSS-файлы с одинаковыми именами классов и загружать их после входа в систему.с базой идентификатора в базе данных, которую вы имеете против пользователя, это поможет вам быстрее загружать страницы, и подключение к базе данных будет меньше.
Вы можете просто получить идентификатор пользователя, используя
if (!Page.User.Identity.IsAuthenticated)
{
MembershipUser member = Membership.GetUser();
if (member != null)
{
ProfileCommon opC = Profile.GetProfile(Email.Text);
hdnTheme.Value = opC.ThemeID;
hdnUserID.Value = member.ProviderUserKey.ToString();
}
}
в вашем ASPX-коде при загрузке страницы
$(document).ready(function (){
var themeid = $("#hdnTheme.ClientID").val()
var UserID= $("#hdnUserID.ClientID").val()
if (themeid == 1)// for user specific theme
<link href="includes/css/"+ UserID +".css" type="text/css" rel="stylesheet" />
else if (themeid == 2) // for the theme which you have created and already the file exists
<link href="includes/css/2.css" type="text/css" rel="stylesheet" />
else
<link href="includes/css/default.css" type="text/css" rel="stylesheet" />
});