Как прочитать содержимое файла json из класса запуска Owin в веб-приложении ASP.NET 4 - PullRequest
0 голосов
/ 04 марта 2019

Я использую Owin с OpenID Connect в своем приложении ASP.NET Webforms, чтобы аутентифицировать пользователей с IdentityServer 4.

До сих пор я читал входные параметры для IdentityServer из моего Web.configфайл.Я делаю это в классе запуска.Однако я хочу поместить мои настройки в файл json и сохранить их на корневом уровне моего веб-приложения.Я не хочу фиксировать этот файл в моей системе контроля версий, поскольку он содержит ClientSecret, который я считаю конфиденциальными данными, которые я должен защищать.

Я видел примеры того, как читать содержимое из jsonфайл в классе Startup в приложении .NET Core, но не нашел работающего примера того, как сделать это в веб-приложении .NET 4.

Я создал класс с именем Config.У него есть статическая / общая функция Settings (), которая предназначена для чтения файла json и сериализации json в класс под названием Settings:

Dim filePath = Hosting.HostingEnvironment.MapPath("~/settings.json")
Using reader = New StreamReader(filePath)
    Dim json = reader.ReadToEnd()
    Dim settings = JsonConvert.DeserializeObject(Of Settings)(json)
    Return settings
End Using

Я вызываю Hosting.HostingEnvironment.MapPath () какэтот код находится внутри статической / разделяемой функции.Я также пытался вызвать HttpContext.Current.Server.MapPath (), который является альтернативным методом в нестатическом контексте.

В любом случае оба примера кода возвращают ноль.

Что я делаюнеправильно?Доступно ли Hosting.HostingEnvironment в классе автозагрузки?Я знаю, что Оуин вводит себя до запуска жизненного цикла ASP.NET.Если эта функция действительно недоступна во время выполнения кода запуска, есть ли другой метод, который я могу использовать для чтения содержимого из моего файла json?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...