мы используем NancyFX V 2.0.0 с VS2019, и я хочу установить текущий субъект потока в базовом классе, чтобы при вызове модуля он использовал указанный субъект потока в модуле.
Кому Для этого я использую хук Before NancyModule, а затем вызываю метод для установки принципала потока.
Мой хук базового модуля похож на следующее:
public BaseModule(string modulePath, ILogger logger) : base(modulePath)
{
_logger = logger;
Before += ctx =>
{
SetThreadPrincipal(ctx);
return null;
};
After += ctx =>
{
};
}
Метод SetThreadPrincipal просто создает новый GenericPrincipal и затем назначает принципала текущему потоку, например,
GenericIdentity MyIdentity = new GenericIdentity(context.CurrentUser.Identity.Name);
// Create generic principal.
String[] MyStringArray = { "CustomerUser" };
GenericPrincipal MyPrincipal = new GenericPrincipal(MyIdentity, MyStringArray);
Thread.CurrentPrincipal = MyPrincipal;
Затем в моем классе Nancy Module, который наследует BaseModule, у меня есть простой маршрут, например
public class CustomerModule : BaseModule
{
Get("/api/customer/{id}", parameters =>
{
// **Calling System.Threading.Thread.CurrentPrincipal here returns a different Principal than what was specified in the Base Module**
}
}
. У меня возникает проблема, если я вызываю System.Threading.Thread.CurrentPrincipal в методе CustomerModule / Customer над CurrentPrincipal, который отличается от принципала, указанного в BaseClass.
Я бы подумал, что подключиться к Нэнси Перед запросом и указанием участника потока в базовом классе будет задана директор по рекламе в самом модуле, который реализовал класс.
Любая помощь приветствуется Спасибо