Не удается найти NancyOwinHost

#.net #owin #windows-authentication #nancy

#.net #owin #windows-проверка подлинности #nancy

Вопрос:

У меня есть модуль Nancy следующим образом:

 using System;
using System.Collections.Generic;
using System.Security.Principal;
using Nancy;

public class StatusModule : NancyModule
{
    public StatusModule()
    {
        Get["/"] = _ =>
        {
            var env = ((IDictionary<string, object>) Context.Items[Nancy.Owin.NancyOwinHost.RequestEnvironmentKey]);
            var user = (IPrincipal) env["server.User"];
            return Response.AsJson(new {TimeStamp = DateTime.Now.ToString("O"), Status = "OK"});
        };
    }
}
  

Однако я получаю сбой компиляции, который NancyOwinHost не может быть найден. Согласно SymbolSource, это должен быть общедоступный класс в Nancy.Owin сборке; однако последняя версия, которая у них есть, — 1.3.0, и я использую 1.4.1.

Взломав эту сборку, действительно похоже, что ее там нет

Просмотр точки зрения Nancy.Owin сборка

Любой совет? Я пытаюсь реализовать проверку подлинности Windows через Nancy.

Спасибо

Дэйв

Редактировать

Я попытался вернуться к версии 0.22.1, и теперь класс присутствует. (Хотя во время выполнения происходит сбой, поскольку теперь сборки не совпадают Field not found: 'Nancy.Bootstrapper.NancyBootstrapperLocator.Bootstrapper'. ).

Ответ №1:

Немного копания и здравого смысла, и я понял, что волшебные слова были:

 var requestEnvironment = (IDictionary<string, object>) Context.Items["OWIN_REQUEST_ENVIRONMENT"];
var user = (IPrincipal) requestEnvironment["server.User"];