Ответ 1
Вы наткнулись на худший пример, включенный в DotNetOpenAuth. Извини за это. Вы можете обнаружить, что шаблоны проектов OpenID представляют более простую и более реальную идею о том, как настроить поставщика услуг OAuth.
Образец, с которым вы сейчас работаете, является поставщиком услуг, предоставляющим службу WCF с использованием OAuth, поэтому в выборке есть какая-то сложность, которая не будет для вас, если вы не используете WCF. Вот что вам нужно сделать, чтобы получить образец, хотя:
- Измените пример файла root default.aspx.cs, чтобы добавить данные в новую базу данных для вашего собственного OpenID и заставить образец воссоздать свою базу данных ИЛИ просто добавить необработанные данные в базу данных самостоятельно после sample создает свою собственную базу данных.
- Используйте образец OAuthConsumer, чтобы попытаться получить доступ к данным в образце OAuthServiceProvider. Обязательно проверьте хотя бы один флажок для того, что будут областями, на которые вы запрашиваете разрешение.
- SP предложит вам войти в систему. Идем дальше и делаем это с помощью OpenID, для которого вы добавили данные в базу данных.
- SP спросит, согласны ли вы поделиться своими данными с образцом потребителя. Скажите "да".
- Потребитель скажет, что получил авторизацию и предоставил вам несколько кнопок, которые запрашивают пользовательские данные в SP.
Это должно сработать. Добавьте комментарии к этому ответу, если это не так, и я отредактирую этот ответ, пока мы не исправим его.:)
Теперь о вашем входе в DNN - вообще не проблема. Как вы, возможно, знаете, OAuth и OpenID ортогональны друг другу, поэтому вы можете просто отключить вход OpenID в SP для входа в систему DNN, и SP будет работать нормально - хотя совпадение пользовательских данных в базе данных курс потребует выполнения любых необходимых DNN.