2016-01-19 4 views
1

Я хочу хранить электронную почту, столбец1 и столбец2 вместе с пользовательским типом. Его требование проверять значения столбца1 и и colmun2 проверяется при каждой загрузке страницы, я не хочу извлекать данные из базы данных каждый раз.Сохранить Все данные пользователя в файлах cookie для проверки подлинности форм

Как это сделать?

string type = User.Type; 
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, lg.UserName, DateTime.Now, DateTime.Now.AddMinutes(50), ckbRemember.Checked, User.Type,FormsAuthentication.FormsCookiePath); 

ответ

2

Вы можете установить последний параметр как строку с разделителями-запятыми, как в коде ниже.

FormsAuthenticationTicket ticket = null; 
ticket = new FormsAuthenticationTicket(1, lg.UserName, DateTime.Now, 
     DateTime.Now.AddMinutes(50), ckbRemember.Checked, 
     email + "," + column1 + ","+ column2 + "," + type); 
//or just use line of code below after creating ticket object 
//ticket.UserData = email + "," + column1 + ","+ column2 + "," + type; 

Затем, когда вы хотите прочитать пользовательские данные билета проверки подлинности форм, вы можете использовать приведенный ниже код.

FormsIdentity identity = (FormsIdentity)Context.User.Identity; 
userData = identity.Ticket.UserData; 
string[] data = userData.Split(",".ToCharArray()); 
//get the data stored in UserData property of forms authentication ticket 
string email = data[0]; 
string column1 = data[1]; 
string column2 = data[2]; 
string userType = data[3]; 
+0

Спасибо, что решили проблему :) Но могу я спросить, должен ли я это сделать? хранить данные в файлах cookie - зашифрованные куки. Не могли бы вы рассказать мне, что такое за и против использования этого метода. – Akash

+0

Файлы cookie для проверки подлинности форм очень безопасны. Просто не забудьте установить 'protection =" Все "в веб-конфиг для проверки подлинности форм. – Sunil