2014-11-19 3 views
0

У меня пока нет кода для этого, но я планирую отправить идентификатор сеанса asp.net как параметр в BIRT механизм отчетов.Интеграция BIRT в ASP.NET

Тогда в «Инициализировать» событие в BIRT я планирую вызвать страницу на том же самом приложении ASP.NET, который будет проверять, если идентификатор сеанса является действительным или нет, несколько вопросов:

  1. ли вы, подумайте, что это допустимый сценарий?

  2. Вы знаете какой-либо сайт, решивший эту проблему?

P.S основной целью этого является безопасность, поскольку я не хочу, чтобы люди использовать BIRT URL вне контекста моего .NET приложения.

+0

[Как обеспечить просмотр отчетов BIRT] (http://stackoverflow.com/questions/16128051/how-to-secure-birt-report-viewer) –

ответ

2

Первое правило. Никогда. Когда-либо. Когда-либо. Используйте сеанс для обеспечения безопасности. Только не делай этого. Сессия небезопасна, ненадежна и не предназначена для обеспечения безопасности.

Во-вторых, вы не можете иметь BIRT-вызов ASP-страницы, так как это будет вызов на стороне сервера, у него не будет cookie сеанса от пользователя, поэтому даже выполнение того, что вы пытаетесь, не будет работать , По сути, BIRT становится клиентом.

Существует множество способов контроля доступа к сайту. Например, вы можете сгенерировать ключ доступа, который вы передаете на BIRT-сервер, который затем может декодировать ключ и убедиться, что он действителен с помощью шифрования. Вы можете зашифровать дату и время создания ключа и сделать ключ действительным только в течение короткого периода времени. Затем вы расшифровываете ключ на сервере BIRT, сравниваете время и знаете, имеет ли пользователь доступ.

Однако лучшим способом было бы использовать что-то вроде OAuth для контроля доступа. Ваши обмены сервером asp.net и BIRT-сервера, сделайте проверку и т. Д. Через клиента, и вы знаете, что клиент имеет доступ, потому что у них есть токен-носитель.

Смежные вопросы