Пользовательские роли DynamicData / Безопасность для таблицы - PullRequest
1 голос
/ 28 февраля 2009

У меня есть приложение ASP.NET с динамическими данными, с требованием предоставить некоторым пользователям таблицы X, Y и Z, а другим только X и Z. Все 3 из этих таблиц используют стандартные шаблоны страниц ListDetails, и мы действительно хотим чтобы избежать создания пользовательских страниц для x, y и z. Каков наилучший способ справиться с этой безопасностью?

Все наши разрешения хранятся в пользовательском классе пользователя с логическими свойствами. Итак, в этом примере у нас есть CanViewX, CanViewY и CanViewZ.

Мы не хотим жестко кодировать имя таблицы в коде.

EDIT
До меня дошло, что теперь, возможно, понадобилось немного больше объяснений, поскольку у него есть щедрость ... Мы используем платформу DynamicData, и мы хотели бы избежать создания страниц клиентов для списка, списков деталей, редактирования и т. Д. Для каждая из разных таблиц, которые будут доступны на сайте. У нас есть особые требования, которые не позволят одному пользователю дотронуться до таблицы A, но они могут дотронуться до B и C. В то время как другие пользователи могут дотронуться только до A и B.

Мы ищем рекомендацию и решение о том, как справиться с этим без необходимости жестко кодировать имена таблиц в любом месте нашего кода.

Ответы [ 4 ]

3 голосов
/ 06 марта 2009

Вы пробовали выполнить следующие шаги в этом проекте:

http://csharpbits.notaclue.net/2008/05/introduction-this-project-is-going-to.html

Надеюсь, это поможет.

1 голос
/ 23 марта 2009

Я хотел бы упомянуть, что в новом Dyanmic Data Preview 3 появилась новая функция DomainService, которая поддерживает безопасность на основе ролей. См. «Дэвид Эббо» из MIX09 здесь Доступ к данным Microsoft ASP.NET 4.0: шаблоны для достижения успеха с Веб-формы MIX09-T47F

1 голос
/ 19 марта 2009

Наряду со статьей из моего блога, упомянутой ранее, вы также можете взглянуть на пример обеспечения безопасности Динамические данные на codeplex , который использует обработчик маршрута.

1 голос
/ 28 февраля 2009

C #:

protected void Page_Load(System.Object sender, System.EventArgs e)
{
  ToggleTables();
}

private void ToggleTables()
{
tableXid.Visible = canviewx();
tableYid.Visible = canviewy();
tableZid.Visible = canviewz();
}
...