Членство в ASP.NET - два провайдера на сайте - PullRequest
1 голос
/ 11 августа 2010

На нашем сайте есть два провайдера ASP.NET.Встроенный и пользовательский (SqlMembershipProvider.

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

У меня проблема в следующем:

Пользователь "person_a@site.com" входит в систему встроенного поставщика. Затем он переходит в раздел сайта, где нам требуется пользовательский поставщик.

На этой странице я могу проверить, аутентифицированы ли они, и получить их имя пользователя. Затем я могу получить объект MembershipUser из метода GetUser пользовательских провайдеров. (HttpContext.Current.User.Identity.Name)

Возможно (и очень вероятно), что имя пользователя "person_a@site.com" также может существовать в пользователях для нестандартного провайдера.

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

Итак, можно ли проверить, из какого провайдера был сгенерирован HttpContext.Current.User.

Надеюсь, все это имеет смысл !! ​​

1 Ответ

0 голосов
/ 23 сентября 2010

Да, если вы заметили на RolePrincipal , есть свойство с именем ProviderName.

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

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

...