Как я могу обработать несколько входов в веб-приложение из одного сеанса? - PullRequest
0 голосов
/ 25 декабря 2011

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

Как решить основную проблемуздесь, какое веб-приложение распознает меня как одного зарегистрированного (запомненного) пользователя, когда я хочу войти как другой?Или я просто даю пользователям понять, что они всегда должны подписать одну «персону», прежде чем пытаться использовать другую?

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

Ответы [ 2 ]

0 голосов
/ 25 декабря 2011

Количество кода, необходимого для проверки ролей, минимально:

if (User.IsInRole ("author") {// отрендерить материал автора} else {// отрендерить другой материал}

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

0 голосов
/ 25 декабря 2011

Скажите, правильно ли я понял, но в большинстве случаев это происходит от входа в систему с одной личностью, которой назначены разные роли.Таким образом, вам не понадобится несколько удостоверений для одного пользователя, и вы будете отображать html в зависимости от ролей для этого удостоверения.(например: самая привилегированная роль в коллекции ролей идентификации)

Если ваш клиент хочет использовать несколько идентификаторов, то я советую использовать Session Wrapper . Таким способом вы можете создатьсобственная структура сеанса и хранение зарегистрированных ролей.

...