Я ни в коем случае не эксперт по SharePoint, и мне было очень трудно найти нужную информацию по этому вопросу.Помогите, пожалуйста!
Мне нужен способ вызвать токен утверждения, установленный с помощью вызова SPFederationAuthenticationModule.SetPrincipalAndWriteSessionToken
, чтобы пересчитать утверждения на токене без выхода из системы текущего пользователя.Есть какой-либо способ сделать это?
Некоторые сведения о том, почему я спрашиваю это:
Мы используем настраиваемый поставщик ролей и членства для authN / Z в нашем настраиваемом веб-приложении SharePoint 2010.Не вдаваясь в подробности того, почему (которые являются сложными) поставщик ролей создает динамически генерируемые имена ролей для пользователя на основе состояния пользователя в основной базе данных приложения;Эти роли представляют разрешения для пользователя и используются внутри SharePoint для определения доступа пользователя к сайтам и семействам сайтов в приложении.
В нашем приложении есть способы, позволяющие пользователю изменять свои разрешения, эффективно добавляя новые роли через поставщика ролей, предоставляя пользователю дополнительный доступ в приложении.Проблема, с которой мы сталкиваемся, заключается в том, что аутентификация на основе утверждений, которую мы вынуждены использовать в SP2010 , предварительно вычисляет разрешения при входе в систему и кодирует эти разрешения в маркере сеанса, что фактически заставляет нас просить пользователя выйти из системы.и войдите в систему, прежде чем они смогут получить свои новые разрешения.Это создает всевозможные проблемы с юзабилити, отсюда и мой вопрос.
Есть ли какой-нибудь способ программно пересчитать токен сеанса без выхода из системы пользователя?
Или мы лаем неправильное дерево?В моей обычной счастливой стране ASP.NET я бы использовал Forms Auth, которая вычисляет авторизацию при каждом запросе, а не при входе в систему.К сожалению, в SP2010 такой возможности нет, и на данный момент я довольно застрял в SharePoint.Есть ли другие действия, которые мы можем предпринять?