Членство в ASP.NET - вход в два места одновременно - PullRequest
0 голосов
/ 12 августа 2010

У нас есть два разных списка пользователей, которые нам нужны для входа в разделы нашего сайта. Эти списки нельзя объединять, так как каждый синхронизируется ежедневно с внешним источником данных, и обе таблицы должны быть на 100% одинаковыми.

Мы настроили двух провайдеров членства на сайте, но мой вопрос: можно ли разрешить обоим входить в систему одновременно?

Проблема, которую я обнаружил, состоит в том, что HttpContext.Current.User.identity.name содержит имя пользователя последнего успешного входа.

Ответы [ 2 ]

0 голосов
/ 12 августа 2010

Используйте какой-либо разделитель и поместите обоих пользователей в идентификатор входа.например, mp3duck / employee1

Когда вы входите через провайдера членства 1, вы делаете что-то вроде

// extract the existing prov2ID so you can keep it. GetID() would be a string split function
string prov2ID = GetID(User.Identity.Name, 2); 
FormsAuthentication.SetAuthCookie(prov1ID + "/" + prov2ID, false);

И наоборот для входа через провайдера членства 2.

Если вы используетеэлемент управления, вы должны изменить свойство UserName вместо вызова SetAuthCookie (), так как элемент управления входа вызывает сам SetAuthCookie ().

Вы можете помещать любые вещи в имя Identity.Я часто использую его для хранения как номера int ID для первичного ключа пользователя, так и его имени пользователя.Единственным недостатком является то, что вы должны очистить его при отображении в HTML.например, Hello <% User.Identity.Name%> будет отображать намного больше, чем вы хотели.

0 голосов
/ 12 августа 2010
...