HTTP-транзакция, аутентификация базового доступа, не подходит для RBAC, потому что аутентификация базового доступа каждый раз используется для зашифрованного имени пользователя: пароль, а в RBAC - роль, которую пользователь хочет использовать для конкретного вызова. RBAC не проверяет права доступа к имени пользователя, а относится к ролям.
Вы можете объединиться, чтобы объединиться следующим образом: usernameRole: пароль, но это плохая практика, и это также неэффективно, потому что, когда у пользователя больше ролей , механизм проверки подлинности должен будет проверить все роли в конкатенации и повторить каждый вызов. Это уничтожит одно из самых больших технических преимуществ RBAC, а именно очень быстрый авторизационный тест.
Таким образом, эта проблема не может быть решена с использованием базовой аутентификации доступа.
Чтобы решить эту проблему, требуется сеансовое сопровождение, и это кажется, по некоторым ответам, противоречащим REST.
Вот что мне нравится в ответе, что REST не следует рассматривать как религию. Например, в сложных бизнес-ситуациях, в сфере здравоохранения, RBAC является абсолютно общим и необходимым. И было бы жаль, если бы им не разрешалось использовать REST, потому что все дизайнеры REST-инструментов рассматривали бы REST как религию.
Для меня не так много способов поддерживать сеанс по HTTP. Можно использовать файлы cookie с sessionId или заголовок с sessionId.
Если у кого-то есть другая идея, я буду рад это услышать.
Перейдите к свойству BackgroundColor строки таблицы и выберите "Expression..."
Использование это выражение:
= IIf(RowNumber(Nothing) Mod 2 = 0, "Silver", "Transparent")
Этот прием может быть применен ко многим областям отчета.
И в.NET 3.5 + Вы могли использовать:
= If(RowNumber(Nothing) Mod 2 = 0, "Silver", "Transparent")
Не поиск представителя - я просто исследовал этот вопрос сам и думал, что совместно использую.
Используя IIF (RowNumber...) может привести к некоторым проблемам, когда строки группируются, и другая альтернатива должна использовать простую функцию VBScript для определения цвета.
Это - немного больше усилия, но когда основное решение не достаточно, это - хорошая альтернатива.
В основном, Вы добавляете код к Отчету следующим образом...
Private bOddRow As Boolean
'*************************************************************************
' -- Display green-bar type color banding in detail rows
' -- Call from BackGroundColor property of all detail row textboxes
' -- Set Toggle True for first item, False for others.
'*************************************************************************
Function AlternateColor(ByVal OddColor As String, _
ByVal EvenColor As String, ByVal Toggle As Boolean) As String
If Toggle Then bOddRow = Not bOddRow
If bOddRow Then
Return OddColor
Else
Return EvenColor
End If
End Function
Тогда на каждой ячейке, набор BackgroundColor следующим образом:
=Code.AlternateColor("AliceBlue", "White", True)
Полное изложение находится на этом статья
Wroxдля заголовков/нижних колонтитулов группы:
=iif(RunningValue(*group on field*,CountDistinct,"*parent group name*") Mod 2,"White","AliceBlue")
можно также использовать это для “reset” количество цвета строки в каждой группе. Я хотел, чтобы первая строка детали в каждой sub группе запустилась с Белого, и это решение (когда используется на строке детали) признало что произойти:
=IIF(RunningValue(Fields![Name].Value, CountDistinct, "NameOfPartnetGroup") Mod 2, "White", "Wheat")
См.: http://msdn.microsoft.com/en-us/library/ms159136 (v=sql.100) .aspx
render :json => { :status => :ok, :message => "Success!", :html => "...insert html..." }
– MID
12 September 2012 в 10:07
Я заметил одну вещь: ни один из двух верхних методов не имеет никакого представления о том, какого цвета должна быть первая строка в группе; группа просто начнется с цветом, противоположным последней строке предыдущей группы. Я хотел, чтобы мои группы всегда начинались с одного цвета ... первая строка каждой группы всегда должна быть белой, а следующая - цветной.
Основная идея заключалась в том, чтобы сбрасывать переключатель при запуске каждой группы, поэтому я добавил немного кода:
Private bOddRow As Boolean
'*************************************************************************
' -- Display green-bar type color banding in detail rows
' -- Call from BackGroundColor property of all detail row textboxes
' -- Set Toggle True for first item, False for others.
'*************************************************************************
Function AlternateColor(ByVal OddColor As String, _
ByVal EvenColor As String, ByVal Toggle As Boolean) As String
If Toggle Then bOddRow = Not bOddRow
If bOddRow Then
Return OddColor
Else
Return EvenColor
End If
End Function
'
Function RestartColor(ByVal OddColor As String) As String
bOddRow = True
Return OddColor
End Function
Итак, теперь у меня есть три разных типа фона ячеек:
У меня это работает. Если вы хотите, чтобы группирующая строка была неокрашенной или другого цвета, из этого должно быть довольно очевидно, как ее изменить.
Пожалуйста, не стесняйтесь добавлять комментарии о том, что можно сделать для улучшения этого кода: I Я новичок как в SSRS, так и в VB, поэтому я сильно подозреваю, что есть много возможностей для улучшения, но основная идея кажется здравой (и она была полезна для меня), поэтому я хотел выбросить ее здесь.
)Это работает для меня. Если вы хотите, чтобы группирующая строка была неокрашенной или другого цвета, из этого должно быть довольно очевидно, как ее изменить.
Пожалуйста, не стесняйтесь добавлять комментарии о том, что можно сделать для улучшения этого кода: I Я новичок как в SSRS, так и в VB, поэтому я сильно подозреваю, что есть много возможностей для улучшения, но основная идея кажется здравой (и она была полезна для меня), поэтому я хотел выбросить ее здесь.
)Это работает для меня. Если вы хотите, чтобы группирующая строка была неокрашенной или другого цвета, из этого должно быть довольно очевидно, как ее изменить.
Пожалуйста, не стесняйтесь добавлять комментарии о том, что можно сделать для улучшения этого кода: I Я новичок как в SSRS, так и в VB, поэтому я сильно подозреваю, что есть много возможностей для улучшения, но основная идея кажется разумной (и она была полезна для меня), поэтому я хотел выбросить ее здесь.
Моя проблема заключалась в том, что я хотел, чтобы все столбцы в строке имели одинаковый фон. Я сгруппировал как по строкам, так и по столбцам, и с двумя верхними решениями здесь я получил все строки в столбце 1 с цветным фоном, все строки в столбце 2 с белым фоном, все строки в столбец 3 с цветным фоном и т. д. Это как если бы RowNumber
и bOddRow
(из решения Catch22) обращали внимание на мою группу столбцов вместо того, чтобы игнорировать это и только чередовать с новой строкой.
Я хотел для всех столбцы в строке 1 должны иметь белый фон, затем все столбцы в строке 2 должны иметь цветной фон, затем все столбцы в строке 3 иметь белый фон и так далее.
Если для всего отчета вам нужен чередующийся цвет, вы можете использовать DataSet, к которому привязан ваш Tablix, для идентификатора rownumber всего отчета и использовать его в функции RowNumber...
=IIf(RowNumber("DataSet1") Mod 2 = 1, "White","Blue")