Silverlight 2 получает информацию о членстве / личности из приложения MVC - PullRequest
1 голос
/ 09 февраля 2009

У меня есть приложение MVC, которое, помимо прочего, содержит небольшое меню Silverlight, которое отображается как часть страницы .Master, используемой на большинстве страниц.

Я также написал MembershipProvider (и поставщик ролей), который использует базу данных моего приложения для аутентификации и авторизации пользователей. Работает нормально.

Однако я хочу, чтобы меню Silverlight содержало некоторые дополнительные пункты, если пользователь играет роль администратора. Конечно, одна возможность состоит в том, чтобы создать два приложения меню Silverlight и выбрать, какое из них отображать на основе пользователя на главной странице. Но это звучит ужасно для меня.

Лучшим вариантом было бы, если бы приложение Silverlight могло выяснить личность вошедшего в систему пользователя и использовать его, чтобы настроить себя для отображения параметров администратора.

Есть ли простой способ сделать что-то подобное? Приложение MVC и приложения Silverlight развернуты на одном сервере IIS7 и являются частью одного и того же решения.

Решения, которые я нашел в Интернете до сих пор, либо запрашивают у пользователя отдельный вход в приложение Silverlight, либо выполняют большую работу со службами WCF. Если мне придется, я пойду этим путем, но у меня возникло ощущение, что должен быть элегантный, легкий способ сделать это.

Я твердо верю в принцип KISS, поэтому простота высоко ценится!

Спасибо!

1 Ответ

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

Я почти уверен, что ваше меню Silverlight не должно знать, является ли пользователь администратором или нет.

Если у вас есть элемент управления меню «универсального стиля», который может отображать любое количество элементов, то я думаю, что эти элементы должны быть переданы. После этого главное представление должно выбрать элементы для отображения. Более того, контроллер должен возвращать элементы для отображения в зависимости от статуса пользователя, а главное представление должно просто отображать их.

Если у вас есть элемент управления меню, специально разработанный для вашего веб-приложения, который на самом деле не предназначен для показа какого-либо количества элементов, то в главном представлении нужно просто установить свойство или что-то такое, чтобы сообщить этот факт.

Остальная часть вашего вопроса немного смутила меня, но я убежден, что ваш компонент silverlight сам по себе не является полным «приложением», а просто частью презентации.

...