Roles.GetRolesForUser () возвращает роли для текущего вошедшего в систему пользователя.
1: убедитесь, что вы выполняете его при входе в систему.
2: убедитесь, что пользователю назначена роль.
На ваш вопрос о наилучшем способе я не уверен, в каком контексте вы спрашиваете.Но в основном, если вы используете встроенный контроль входа в ASP.NET, вам не нужно ничего делать.Вы можете явно использовать метод Membership.ValidateUser, если хотите.Важно отметить, что вам необходимо установить FormsAuthentication в файле web.config.