Как мне обращаться с аутентификацией с Нэнси? - PullRequest
20 голосов
/ 16 ноября 2011

Я начал кодировать LoginModule для Нэнси, но мне пришло в голову, что, возможно, мне нужно выполнить аутентификацию другим способом. Есть ли принятый способ сделать аутентификацию в Нэнси? Сейчас я планирую два проекта: web и json service. Мне понадобится аутентификация для обоих.

Ответы [ 2 ]

23 голосов
/ 17 ноября 2011

Как пишет Стивен, Нэнси поддерживает базовую аутентификацию и авторизацию форм из коробки. Взгляните на эти два демонстрационных приложения, чтобы узнать, как это сделать: https://github.com/NancyFx/Nancy/tree/master/samples/Nancy.Demo.Authentication.Forms и https://github.com/NancyFx/Nancy/tree/master/samples/Nancy.Demo.Authentication.Basic

Со второй из этих демонстраций представлен модуль, требующий аутентификации:

namespace Nancy.Demo.Authentication.Forms
{
  using Nancy;
  using Nancy.Demo.Authentication.Forms.Models;
  using Nancy.Security;

  public class SecureModule : NancyModule
  {
    public SecureModule() : base("/secure")
    {
        this.RequiresAuthentication();

        Get["/"] = x => {
            var model = new UserModel(Context.CurrentUser.UserName);
            return View["secure.cshtml", model];
        };
    }
  }
}

и фрагмент загрузчика, который устанавливает аутентификацию формы в конвейере запросов:

    protected override void RequestStartup(TinyIoCContainer requestContainer, IPipelines pipelines, NancyContext context)
    {
        // At request startup we modify the request pipelines to
        // include forms authentication - passing in our now request
        // scoped user name mapper.
        //
        // The pipelines passed in here are specific to this request,
        // so we can add/remove/update items in them as we please.
        var formsAuthConfiguration =
            new FormsAuthenticationConfiguration()
            {
                RedirectUrl = "~/login",
                UserMapper = requestContainer.Resolve<IUserMapper>(),
            };

        FormsAuthentication.Enable(pipelines, formsAuthConfiguration);
    }
1 голос
/ 16 января 2015

Я создал пример веб-приложения для проверки подлинности форм с управлением пользователями с Нэнси для собственного обучения.Это на Github здесь, если вы хотите играть с ним.

https://github.com/GusBeare/Nancy-UserManager

...