#.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.
Взломав эту сборку, действительно похоже, что ее там нет
Любой совет? Я пытаюсь реализовать проверку подлинности 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"];