Roles.GetRolesForUser(); возвращается пустым
Используя API членства asp.net, когда я вызываю Roles.GetRolesForUser(); это ничего не возвращает. Когда я звоню Roles.GetAllRoles(), все роли возвращаются. В чем проблема? Также, как правильно аутентифицировать пользователей, используя API членства?
3 ответа
Вам нужно добавить [InitializeSimpleMembership] перед продолжением в контроллере
Вы размещались с использованием IIS и выполняли анонимную аутентификацию? Обычно любой провайдер безопасности будет использовать самый простой из найденных.
Он будет начинаться с Anonymous, затем, если он отключен, он будет искать Forms, а затем Windows.
Веб-сервер cassini, встроенный в Visual Studio, сделает это за вас.
Roles.GetRolesForUser() возвращает роли для текущего вошедшего в систему пользователя.
1: убедитесь, что вы выполняете его, когда вы вошли в систему.
2: убедитесь, что пользователю назначена роль.
На ваш вопрос о лучшем способе я не уверен, в каком контексте вы спрашиваете. Но в основном, если вы используете встроенный контроль входа в ASP.NET, вам не нужно ничего делать. Вы можете явно использовать метод Membership.ValidateUser, если хотите. Одна ключевая вещь, на которую следует обратить внимание, - вам необходимо установить FormsAuthentication в вашем файле web.config.