Как получить значения ролей вошедшего пользователя
Пользователь логинится. В базе MySQL, в мною созданной таблице, хранятся его логин, пароль, группа (админ, юзер и т.п.) и отдел (филиалы). В самом сайте, после аутентификации, в global.asax читаю ему роли из вышеозначенной таблицы:
Код:
if (User.Identity.IsAuthenticated)
{
string[] roles = new string[2];
OdbcConnection myConnection = new OdbcConnection(getConnectionString());
myConnection.Open();
OdbcCommand myCommand = new OdbcCommand("Sel ect groupName,Department fr om base.webUsers Where userName = '" + User.Identity.Name + "'", myConnection);
OdbcDataReader drRoles = myCommand.ExecuteReader();
if (drRoles.Read())
{
roles[0] = (string)drRoles[0];
roles[1] = (string)drRoles[1];
}
myConnection.Close();
Context.User = new GenericPrincipal(Context.User.Identity, roles);
}
{
string[] roles = new string[2];
OdbcConnection myConnection = new OdbcConnection(getConnectionString());
myConnection.Open();
OdbcCommand myCommand = new OdbcCommand("Sel ect groupName,Department fr om base.webUsers Where userName = '" + User.Identity.Name + "'", myConnection);
OdbcDataReader drRoles = myCommand.ExecuteReader();
if (drRoles.Read())
{
roles[0] = (string)drRoles[0];
roles[1] = (string)drRoles[1];
}
myConnection.Close();
Context.User = new GenericPrincipal(Context.User.Identity, roles);
}
Всякие IsInRole, разумеется, работают.
Изначально RoleManager не использовал, потому различные GetRoles И GetRolesForUser не работают.
Итак вопрос: как получить значение второго поля массива roles[] ? или где сохранить эти значения, чтобы они хранились "глобально", дабы не читать их постоянно из бд.
Заранее благодарен.
спасибо