Mcbaloo Ответов: 0

Как получить роль, к которой принадлежит пользователь, не сверяясь со всеми ролями позиций, которые у меня есть в базе данных ASP.NET


I'm working with Roles for my asp.net webform application. I have all have RoleName already saved in database. What i want to achieve though, is that when a user logs in, i want to get the roleName of the user so as to use it for another thing(to query to Db for a specific result to be displayed.) i have tried to use


<pre>var userRole = Roles.GetRolesForUser(user.Value);

я получаю систему.Строка[] вернулась обратно. который я не могу использовать для запроса в БД.

Что я уже пробовал:

<pre lang="text">if (Membership.ValidateUser(user.Value, Password.Value))
      {
              var userRole = Roles.GetRolesForUser(user.Value);
     var GetSomeRecords = users.Where(m => m.Myrole == userRole).ToList();
        }

F-ES Sitecore

Вы получаете массив строк обратно, потому что человек может иметь несколько строк. Если вашему коду нужна одна конкретная роль, то вам нужен способ запросить возвращаемые роли, чтобы узнать, есть ли в нем эта роль, и если да, то использовать только эту роль. Если вы используете роли в качестве "ключа" или идентификатора поиска для другой таблицы, то ваш дизайн ошибочен из-за уже упомянутой проблемы, что пользователь может иметь много ролей.

Mcbaloo

Спасибо за комментарий. Роль не является ключом для другой таблицы. Я просто намерен использовать имя роли пользователя, чтобы получить определенную информацию из базы данных. Есть ли способ получить имя роли пользователя из возвращаемого массива строк? Для дизайна пользователи могут принадлежать только к одной роли.

Richard Deeming

Что-то вроде этого?

string[] userRoles = Roles.GetRolesForUser(user.Value);
string userRole = userRoles.Length == 0 ? null : userRoles[0];

Mcbaloo

Спасибо. С помощью вышеприведенного предложения я смог получить то, что хотел. Я работал

0 Ответов