Форум

Добро пожаловать, Гость. Чтобы воспользоваться всеми функциями форума - зарегистрируйтесь или аутентифицируйтесь.
onyxch
#1 Оставлено : 30 сентября 2010 г. 18:19:53(UTC)
onyxch

Статус: Новичок

Зарегистрирован: 04.06.2012(UTC)
Сообщений: 3

Задача такая:
один сайт на DotNetNuke, второй - ASP.NET
Эти 2 сайта используют единую базу данных.
На сайте, который на DotNetNuke происходит регистрация новых пользователей.
Сайт ASP.NET открыт только для пользователей, зарегистрированных на сайте DotNetNuke.
И на сайте ASP.NET есть страница входа: логин и пароль.
Система должна проверить, существует ли пользователь с такими данными в базе, если да, то открывается доступ на сайт...
На сайте ASP.NET есть своя таблица с пользователями. Помимо общих данных, там есть и свои, дополнительные данные.
Я заглянул в БД и создал вот такой запрос:
кодSELECT * FROM COMS_Users
INNER JOIN aspnet_Users ON
COMS_Users.Username = aspnet_Users.Username
INNER JOIN aspnet_Membership ON
aspnet_Users.UserId = aspnet_Membership.UserId
WHERE
COMS_Users.Username = @username
--AND
--aspnet_Membership.Password = @password


Здесь COMS - мой префикс для объектов, Users таблица с пользователями DNN.

Получается, что пароль зашифрован и проверить его просто так не нельзя.

Есть ли какие-нибудь соображения по этому поводу?
1bykva
#2 Оставлено : 30 сентября 2010 г. 18:23:36(UTC)
1bykva

Статус: Новичок

Зарегистрирован: 04.06.2012(UTC)
Сообщений: 7

В файле web.config сайта ASP.NET (xpath) configuration/system.web/machineKey должен быть таким же, как и у сайта DotNetNuke, впрочем, и, как и membership должен быть идентичен.
А проверить пользователя можно при помощи метода System.Web.Security.Membership.ValidateUser при наличии выше перечисленных условий:
Understanding Single Sign-On in ASP.NET 2.0
onyxch
#3 Оставлено : 30 сентября 2010 г. 18:25:49(UTC)
onyxch

Статус: Новичок

Зарегистрирован: 04.06.2012(UTC)
Сообщений: 3

Спасибо, попробую.
onyxch
#4 Оставлено : 30 сентября 2010 г. 18:27:19(UTC)
onyxch

Статус: Новичок

Зарегистрирован: 04.06.2012(UTC)
Сообщений: 3

Всё получилось. Скопировал настройки Membership и Machinekey из файла web.config сайта DNN в файл web.config сайта ASP.NET.
Затем, в коде, юзера можно достать так:

код // опцианально
MembershipUser user = Membership.GetUser(login);
if (user != null)
{
string pаssword = user.GetPassword();
}

if(Membership.ValidateUser(login,password))
{
// Do something...
}
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.

Форум YAF | YAF © 2003-2016, Yet Another Forum.NET