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.

Другие вопросы по тегам