В нашем приложении есть несколько форм, которые должны показывать некоторые данные, особенно если текущий пользователь имеет определенный уровень разрешений. Эти пользователи принадлежат к группе SPGroup, в которую входят пользователи, которые не должны видеть эти данные, поэтому в данном конкретном случае я не могу фильтровать на основе членства в группе.
Мое текущее решение состояло в том, чтобы использовать web.CurrentUser.Roles
и использовать простую проверку того, содержит ли он уровень разрешения правильного имени. Роли относятся к устаревшему классу SPRole
, поэтому я засыпан предупреждающими сообщениями, несмотря на то, что это технически работает. Он предполагает, что я использую SPRoleAssignment
или SPRoleDefinition
(рекомендация кажется произвольной, поскольку некоторые строки рекомендуют одну, в то время как другие рекомендуют другую, даже если она используется для одной и той же вещи).
Однако я не могу найти какой-либо метод для непосредственного получения объекта SPRoleAssignment
или SPRoleDefinition
из объекта SPUser
или SPPrincipal
, а также не могу получить ни один объект, соответствующий конкретно текущему пользователю SPWeb
объект.
Как я могу обновить эти методы, чтобы использовать устаревший код? Я обнаружил другие случаи определения пользовательских разрешений, но я не нашел ни одного, который бы работал с начальной точки текущего веб-сайта или текущего пользователя. Это не срочно, но, безусловно, полезно избегать просеивания всех этих предупреждений только для того, чтобы достичь более важных предупреждений.