Простой вопрос по разработке модуля DotNetNuke - PullRequest
2 голосов
/ 09 августа 2009

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

При загрузке страницы все модули на веб-странице должны работать независимо и индивидуально просматривать строку запроса и возвращать содержимое на основе идентификатора пользователя.

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

Я сделал один или два модуля ранее для веб-сайта, но я впервые разрабатываю веб-сайт DotNetNuke, и я просто не уверен, что это единственный способ.

Ответы [ 2 ]

6 голосов
/ 10 августа 2009

Ваш пользовательский элемент управления уже должен наследовать от DotNetNuke.Entities.Modules.PortalModuleBase. Если это так, вы можете использовать свойство this.UserInfo.UserID для получения идентификатора пользователя. Это будет намного безопаснее, чем смотреть на строку запроса. Помните, что пользователь может не войти в систему, и в этом случае приведенное выше может привести к пустой ссылке - поэтому сначала обязательно проверьте на нулевую.

Кроме того, в некоторой связанной заметке вы можете использовать this.UserInfo.IsInRole("RoleName"), чтобы проверить, находится ли конкретный пользователь в данной роли.

2 голосов
/ 09 августа 2009

Каждый модуль должен работать независимо от других.

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

...