Администратор сайта asp.net видит то, что видит пользователь - PullRequest
3 голосов
/ 21 января 2010

В настоящее время я пытаюсь выяснить, как лучше всего реализовать административную сторону для моего приложения.

У меня есть сайт пользователя, на котором пользователи могут войти, настроить свой профиль, отправить информацию и т. Д. Я хотел бы, чтобы администраторы могли входить в систему и иметь возможность выбирать из списка пользователей. Оттуда администратор может предоставить информацию для пользователя так же, как и пользователь.

Website Start Page > RogerRabbit > Submit Information
Website Start Page > BillyBob > Customize Profile

Итак, мой вопрос:

  1. Как мои страницы должны быть выложены?
  2. Как должен выглядеть файл Web.sitemap? Есть ли хороший способ создания карты сайта (может быть, в памяти?)
  3. Должен ли этот метод использовать переменные сеанса?

Любые предложения или советы будут великолепны.

Ответы [ 2 ]

1 голос
/ 08 февраля 2010

Я не могу ответить на ваш вопрос о карте сайта, но я внедрил подобное решение в одной из наших систем, где я могу точно увидеть, что видит конечный пользователь, выдав себя за него. Я делал это в основном для устранения неполадок, чтобы, когда они сообщали мне о проблеме (например, о чем-то не хватало в их представлении), я мог присоединиться к ним и точно понять, о чем они говорят.

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

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

Чтобы я не мог делать что-то с данными пользователя как с ними, в этом объекте есть два свойства: одно для logon_name, которое используется системой для настройки контента, и другое с именем NameForLog, которое используется, когда регистрация любых действий. Все мои действия будут зарегистрированы как я.

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

Это не самое чистое решение, но оно хорошо сработало для меня.

1 голос
/ 21 января 2010

Я не знаю, Майк ... это широкий набор вопросов там. Вроде как спрашивать "как мне создать сайт в asp.net".

Это звучит очень похоже на то, что вам нужно инвестировать в вводную "практическую книгу asp.net", которая охватывает эти тематические области. Хорошей новостью является то, что почти каждая написанная на asp.net книга для начинающих и промежуточных, вероятно, попадет в большинство этих тематических областей.

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

Это своего рода подражание ... и намного сложнее, чем кажется. Но то, как вы это сделаете, зависит от того, как ваше приложение аутентифицирует пользователей, авторизует пользователей и управляет ролями ... это целая подспециализация в asp.net (фактически, с собственными специальными книгами).

1) Как мои страницы должны быть выложены?

Тщательно?

2) Как должен выглядеть файл Web.sitemap? Есть ли хороший способ создания карты сайта (может быть, в памяти?)

Это покрыто MSDN довольно тщательно . Да, вы можете создавать свои карты сайта в памяти. Я создавал карты сайта из данных, хранящихся в БД SQL, несколько раз в прошлом, но я понятия не имел, с чего бы это начать объяснять. Вы должны понимать базовые классы и интерфейсы, используемые картами сайта, а затем создать собственного провайдера карты сайта, адаптированного для работы с вашими данными и правилами для структуры сайта.

3) Должен ли этот метод использовать переменные сеанса?

Возможно. Большинству сайтов с осознанием «авторизованного пользователя» нужны сеансы. Не универсально, но почти так.

...