Запрос на Учебное руководство для добавления Поддержки Openid приложению NerdDinner ASP.NET MVC

1 - Замените

<meta charset="utf-8">

на

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

2 - Проверьте, что кодировка HTML-редактора находится в UTF8. Обычно этот параметр находится на вкладках в верхней части программы, например, в Notepad ++.

3 - Проверьте, совместим ли ваш браузер с вашим шрифтом, если вы каким-то образом импортируете шрифт. Или попробуйте добавить css, чтобы установить шрифты по умолчанию / общепринятым, например

body
{
    font-family: "Times New Roman", Times, serif;
}

. Надеюсь, что это поможет:)

26
задан TMC2K 1 June 2009 в 18:43
поделиться

5 ответов

Как только вы загрузите dotnetopenid , посмотрите в каталоге samples \ RelyingPartyMvc. Есть пример, где они заменяют систему аутентификации MVC по умолчанию на OpenID. Соответствующий код находится в Controllers / UserController.cs. Вот действие Аутентификация:

//Stage 1: Show form asking for Open ID identifier URL
var openid = new OpenIdRelyingParty();
if (openid.Response == null) {
    // Stage 2: user submitting Identifier
    Identifier id;
    if (Identifier.TryParse(Request.Form["openid_identifier"], out id)) {
            openid.CreateRequest(Request.Form["openid_identifier"]).RedirectToProvider();
    } else {
            ViewData["Message"] = "Invalid identifier";
            return View("Login");
            }
} else {
    // Stage 3: OpenID Provider sending assertion response
    switch (openid.Response.Status) {
        case AuthenticationStatus.Authenticated:
            FormsAuthentication.RedirectFromLoginPage(openid.Response.ClaimedIdentifier, false);
            break;
        case AuthenticationStatus.Canceled:
            ViewData["Message"] = "Canceled at provider";
            return View("Login");
        case AuthenticationStatus.Failed:
            ViewData["Message"] = openid.Response.Exception.Message;
            return View("Login");
    }
}
return new EmptyResult();
14
ответ дан nikmd23 25 September 2019 в 08:02
поделиться

Итак, я получил такую ​​работу! Ответ представляет собой комбинацию ответов ниже, а также некоторые игры с контроллерами и представлениями.

Сначала загрузите DotNetOpenAuth , а затем перейдите в каталог примеров, где вы можете найти код OpenIdRelayingPartyMvc. В моем решении NerdDinner

  • я добавил ссылку на сборку DotNetOpenAuth
  • , добавил новый «UserController» и скопировал в код из примера UserController
  • правильное использование операторов и изменение пространства имен для отражения NerdDinner.Controllers
  • воссоздали аналогичные «пользовательские» представления из образца, изменив их соответствующим образом, чтобы отразить идентификаторы основного содержимого сайта.
  • добавлено представление xrds под домашним контроллером. (пока не уверен, что это делает)
  • изменил индекс и добавил методы Xrds ActionResult в HomeController для отражения образца.
  • изменил файл web.config (в корневой папке) в разделе «Аутентификация», чтобы изменить путь входа в систему на новый метод UserController и метод входа
  • Измените ActionLinks «LogOnUserControl», чтобы они указывали на новый UserControl и «Login» и методы выхода из системы.
  • возиться с различными представлениями, которые напрямую вызывают функциональность входа в систему

Сейчас это работает ограниченным образом. Я могу войти в систему и взаимодействовать с приложением NerdDinner с помощью OpenID. Так что это круто. Однако некоторые функции еще не работают. Сохранение созданного ужина не работает, но и не зависает. Мне придется исследовать, как перенести некоторые функции членства в AccountController в UserController. Я буду обновлять этот пост (предложения и указатели приветствуются).

6
ответ дан TMC2K 25 September 2019 в 08:02
поделиться

Посмотрите на каталог Samples / OpenIdRelyingPartyMvc (простой веб-сайт ASP.NET MVC, использующий аутентификацию OpenId). Вы можете начать с копирования Home / User Controllers / Views и настроек из web.config в ваш проект. Я думаю, что это самый быстрый способ дать вашему сайту аутентификацию OpenId. Затем , как сказал Александр Прокофьев , есть очень полезная запись в блоге Эндрю Арнотта (автор DotNetOpenAuth / DotNetOpenId) - Добавить поддержку входа в систему OpenID на ваш сайт ASP.NET MVC.

1
ответ дан Community 25 September 2019 в 08:02
поделиться

В Codeplex есть стартовый комплект участника, который должен быть тем, что вы ищете. Они оба должны следовать модели провайдера (читайте об этом), если они следуют соглашению об аутентификации Microsoft.

http://mvcmembership.codeplex.com/

0
ответ дан Burt 25 September 2019 в 08:02
поделиться

Не специфичен для NerdDinner, но может быть полезен для тех, кто хочет реализовать поддержку OpenId в своем приложении ASP.NET MVC:

7
ответ дан 28 November 2019 в 07:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: