У меня есть веб-приложение C # MVC, которое встраивает отчеты PowerBI.
Вот наша конфигурация для встраивания
var config = {
type: 'report',
id: embedReportId,
accessToken: accessToken,
tokenType: models.TokenType.Embed,
embedUrl: embedUrl,
permissions: models.Permissions.View,
settings: {
filterPaneEnabled: false,
navContentPaneEnabled: true,
background: models.BackgroundType.Transparent,
layoutType: models.LayoutType.Custom,
customLayout: {
displayOption: models.DisplayOption.FitToWidth
}
}
};
Вы упомянули свойство viewMode в своем вопросе.Как вы можете видеть, мы даже не устанавливаем свойство viewMode в нашей конфигурации.Мы только устанавливаем свойство permissions, но, насколько я могу судить, оно мало что дает.Это свойство используется редко или управляет только второстепенными вещами, которые вы можете видеть в пользовательском интерфейсе.
Если вы генерируете токен доступа, например, для «Вид», и кто-то редактирует страницу средства просмотра отчетов встраивания, чтобы изменить свойство разрешения изmodels.Permissions.View to models.Permissions.ReadWrite в HTML / javascript любые последующие вызовы, которые библиотека JavaScript PowerBI пытается выполнить после того, как редактирование страницы этого средства просмотра отчетов завершится неудачей, поскольку сгенерированный токен доступа предназначен для просмотра, а не для редактирования и APIвызовы Microsoft / PowerBI не будут работать.
Так что вам действительно нужно убедиться, что ваша логика на стороне сервера генерирует правильный токен доступа для любого контекста просмотра.Если вы генерировали токен доступа с полными разрешениями и использовали библиотеку JavaScript PowerBI для сокрытия вещей, то пользователи могли бы потенциально изменить источник вашей страницы и сделать больше, чем вы хотели.
Удачи