Вопросы с тегами [asp.net-core-2.0]

1

голосов
1

ответ
99

Просмотры

Почему мои почтовые данные все нуль при проводке с HttpClient?

Я пытаюсь разместить объект от клиента веб-приложения к CRUD API для указанного клиента. Я использую следующий код, чтобы сделать запись запроса: Var = respP ждет _client.PostAsync ( "апите / Лицо", новый StringContent (JsonConvert.SerializeObject (человек), Encoding.UTF8, "приложение / JSon")); И метод действия API является простым: [HttpPost] общественности асинхронной Task Post (Person человека) {_db.Add (человек); ждут _db.SaveChangesAsync (); } У меня есть точки останова на _db.Add (человек); и когда это хит, я вижу, у меня есть непустой экземпляр Person лично, но все поля значения по умолчанию, т.е. nullables равны нулю и т.д. Я настроил свой HttpClient следующим образом: _client.BaseAddress = _config [ "Апи: Url "]; _client.DefaultRequestHeaders.Clear (); _client.DefaultRequestHeaders.Accept.Add (новый MediaTypeWithQualityHeaderValue (»
ProfK
1

голосов
0

ответ
67

Просмотры

разрешения Refresh пользователя после удалены из роли

У меня есть проект, где я могу назначить пользователям роли. Моя проблема заключается в том, что при удалении пользователя из роли, пользователь сможет получить доступ к ресурсам, которые он не loger должен видеть. Единственный способ, чтобы обновить его разрешения, когда он выйти и снова войти в систему. Это проблема, потому что, когда я хочу, чтобы остановить пользователь от доступа к конфиденциальным данным, я не могу это сделать, потому что рамки кэшировать его разрешение. Разрешения не будут обновляться, даже если перезапустить приложение. Есть ли способ, чтобы очистить пользователь кэшированных разрешения, когда я удалить его из роли или когда я добавляю его в ролях?
pitaridis
1

голосов
0

ответ
156

Просмотры

DotNet ядро ​​2.0 - программно прикрепить VS2017 отладчик к процессу

В моем приложении ядра DotNet 2.0 Я повторно запустить то же приложение в другом процессе (с некоторыми другими аргументами) в некоторой точке. Я хочу, чтобы иметь возможность программно прикрепить текущий Visual Studio (2017) отладчик к новому процессу. Вот пример того, как это делается в полном остов, но для начала метод Marshal.GetActiveObject не кажется, существует. Есть другой способ для достижения этой цели в Dotnet ядре 2.0? Или это просто не возможно?
Tom
1

голосов
0

ответ
404

Просмотры

Ошибка после развертывания asp.net ядро ​​угловую в IIS Не удается найти модуль «Сеть САШ-Webpack» в Function.Module._resolveFilename

Я создаю ASP.net Сердечник с угловым проектом. Когда я запускаю его из моей визуальной студии я не получаю ошибки, но когда я публикую и развертывание на машину с IIS, я получаю ошибку ниже. Я установил «.NET Core, Windows Server хостинг пакет» и nodeJS. есть что-нибудь еще, что мне не хватает? NodeInvocationException: Webpack DEV промежуточного слоя не удалось из-за ошибки при загрузке "Сеть САШ-WebPack. Ошибка: Ошибка: Не удается найти модуль 'Сеть САШ-Webpack' в Function.Module._resolveFilename (module.js: 538: 15) в Function.Module._load (module.js: 468: 25) в Module.require (модуль. JS: 587: 17) при (требуется внутренний / module.js: 11: 18) на объекте. (C: \ Windows \ TEMP \ hnfsrsh3.ahy: 83: 19) при webpack_require (C: \ Windows \ TEMP \ hnfsrsh3.ahy: 20: 30) при createWebpackDevServer (C: \ Windows \ Temp \ hnfsrsh3.ahy: 62: 26) в C: \ Windows \ TEMP \ cbaevvou.1oi: 114: 19 в IncomingMessage. (C: \ Windows \ TEMP \ cbaevvou.1oi: 133: 38) в emitNone (events.js: 106: 13) Текущий каталог: C: \ сайт спасибо
kumar
1

голосов
0

ответ
186

Просмотры

Как создать веб-апи JWT и применять в веб-приложений ASP.NET 2.0 ядра?

В настоящее время я занимаюсь разработкой веб-приложений с использованием ASP.NET 2.0 ядро ​​и мне нужно применить JWT аутентификации веб-API в моем веб-приложение. Из моих исследований, я нашел примеры для asp.net ядра 1.0, но не мог найти для ASP.NET 2.0. В чем разница между JWT в ядре 2.0 и Ядра 1.0? Есть ли какой-либо ссылки, которые я могу обратиться? Заранее спасибо.
fai
1

голосов
0

ответ
205

Просмотры

asp.net ядро ​​2.0 не может загрузить PrecompiledViews.dll при публикации

Я refered к; ссылка 1 ссылка 2 Но никто из них не помогло. Проблема заключается в том, что это работает хорошо в моей машине развития. Когда я публикую на Azure службы приложений, это дает ниже исключения. Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware: необработанное исключение произошло: Не удалось загрузить файл или сборку «FCL.Products.DriveSmart.Web.PrecompiledViews. , , System.IO.FileNotFoundException: Не удалось загрузить файл или сборку «FCL.Products.DriveSmart.Web.PrecompiledViews Я пытался изменить файл проекта в соответствии с 2-го по ссылке выше, но все тот же. Я убедился, что файл существует с другими узлами. Тогда я только что создал образец проекта, который генерируется VS2017 и просто опубликовал его. Это работает, и это также имеет DLL PreCompiledViews. Таким образом, я не могу понять, что здесь происходит.
user2058413
1

голосов
1

ответ
330

Просмотры

Как добавить сборок в ASP.NET ядра

Я использую MapXtreme в приложении ASP.NET. Теперь в другом применении Asp.net Core 2, я хочу использовать MapXtreme. Но не знаю, как добавить сборки и настройки MapXtreme в моем веб-проекта ASP.NET CORE. Найти прикрепленный скриншот web.config приложения asp.net (см AppSettings и сборок раздел) .Я хочу использовать те же параметры в ASP.NET Web Project CORE 2. Любая идея, где добавить это в веб-проект ASP.NET CORE?
M.Sharma
1

голосов
0

ответ
473

Просмотры

Net core 2.0 error running Web Api “Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[0]”

Я делаю в 2.0 приложения Net Core. У меня есть несколько веб-Апи проекты, которые я начал из командной строки .. C: \ отлаживать directore \ DotNet prj.dll Это запускает службу на портах, указывающих на файл программы государственной статической IWebHost BuildWebHost (строка [] арг) => WebHost.CreateDefaultBuilder ( арг) .UseStartup () .UseKestrel (опции => {options.Listen (IPAddress.Loopback, 5000); options.Listen (IPAddress.Loopback, 5001);}) Строить (); Оказывается, этот экран Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager [0] Профиль пользователя доступно. Использование 'C: \ Users \ l0658073 \ AppData \ Local \ ASP.NET \ DataProtection-Keys', как ключевое хранилище и Windows, DPAPI для шифрования ключей в покое. Хостинг среда: Производство Содержание корневой путь: C: \ Debug \ netcoreapp2.0 Теперь прослушивает: HTTP: //127.0.0.1:5000 Сейчас слушает: http://127.0.0.1:5001 И все работает нормально, но вдруг он перестал работать правильно .... Когда я запускаю проекты Он появляется только PS C: \ Debug \ netcoreapp2 +0,0> DotNet INOMSmartrouting.dll информация: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager [0] профиль пользователя доступно. Использование 'C: \ Users \ l0658073 \ AppData \ Local \ ASP.NET \ DataProtection-Keys', как ключевое хранилище и Windows, DPAPI для шифрования ключей в покое. порты не появляется. Я вижу в диспетчере задач, и каждый процесс использует 25% Пор память. Что случилось? Что мне не хватает? Спасибо Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager [0] Профиль пользователя доступно. Использование 'C: \ Users \ l0658073 \ AppData \ Local \ ASP.NET \ DataProtection-Keys', как ключевое хранилище и Windows, DPAPI для шифрования ключей в покое. порты не появляется. Я вижу в диспетчере задач, и каждый процесс использует 25% Пор память. Что случилось? Что мне не хватает? Спасибо Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager [0] Профиль пользователя доступно. Использование 'C: \ Users \ l0658073 \ AppData \ Local \ ASP.NET \ DataProtection-Keys', как ключевое хранилище и Windows, DPAPI для шифрования ключей в покое. порты не появляется. Я вижу в диспетчере задач, и каждый процесс использует 25% Пор память. Что случилось? Что мне не хватает? Спасибо
Diego
1

голосов
3

ответ
1.9k

Просмотры

Как создать кнопку, которая будет идти на страницу бритвы при нажатии ( «Бритва страницы» в ядре Dotnet 2)

Я могу использовать вспомогательный тег якорь, чтобы перейти на другую страницу бритвы (от существующей страницы бритвы), например, это работает: Как я могу получить подобную вещь для работы, но и с помощью кнопки. Я пробовал: EditReport Но страница никогда не загружает. Я также попытался с помощью обработчика страниц с различными вариациями: и связанных с ними (в странице CS файла): публичный ActionResult OnEditReport (интермедиат идентификатор) {вернуться RedirectToPage ( «./ EditReport», идентификатор); }, Но этот метод никогда не вызывается (я также попробовал метод OnPostEditReport, но та же проблема именования Если это помогает, мой оригинальный непрофильные DotNet приложение работало нормально с:. Любая помощь было оценено.
Blingers
1

голосов
0

ответ
374

Просмотры

Webpack - держать ту же самую структуру папок для вывода (машинописный + asp.net-ядро-2.0)

Любая помощь высоко ценится. После структуры в моем приложении asp.net ядро ​​2.0. Проект ├───Controller │ │ └───HomeController.cs ├───Scripts ├───FolderA │ │ │ │ ├───A1.ts ├───A2.ts │ │ └───A3 ts-│ │ │ ├───FolderB │───FolderB1 │ │ │ │ │ └───B11.ts └───FolderB2 │ │ │ │ ├───B21.ts └───B22.ts │ │ │ ├───FolderC ├───C1.ts │ │ │ └───C3.ts └───outside.ts ├───Views │ │ │ ├───Home └───Index .cshtml │ │ └───Shared └───Layout.cshtml └───wwwroot │ │ └───Output └─── [Та же структура, как и / скрипты] ├───project.csproj ├─── Program.cs ├───StartUp.cs ├───package.json ├───tsconfig.json ├───webpack.config.json Содержание внутри папки Scripts все машинописных файлов 1. есть ли способ, чтобы передать все машинопись файлы для входа WebPack 2. Можем ли мы иметь такую ​​же структуру папок, как скрипты / машинописные (.ts файлы) внутри Wwwroot / Output (.js файлы) после того, как WebPack выполняется Ниже мой код пути webpack.config.json вар = требуется ( «путь»); вар WebPack = требуется ( "Webpack"); module.exports = {режим: 'развитие', контекст: __dirname, запись: {** // 1. Нужно что-то вроде шаблона, чтобы захватить все, что внутри этой папки машинописных ** A1:»./Scripts/TypeScripts/FolderA/A. TS', B11: './Scripts/TypeScripts/FolderB/FolderB1/B11.ts', B21:' ./Scripts/TypeScripts/FolderB/FolderB2/B21.ts', B22:»./Scripts/TypeScripts/FolderB/ FolderB2 / B22.ts', С1: './Scripts/TypeScripts/FolderC/C1.ts, снаружи:' ./Scripts/TypeScripts/outside.ts'}, модуль: {правила:
Help
1

голосов
2

ответ
1.2k

Просмотры

MemoryStream файл PDF в ASP.NET Core 2

Держите получаю сообщение об ошибке "Не удается получить доступ к закрытой струей. Нужно ли файл быть физически сохранены на сервере первых, перед тем, как Поточный? Я делаю то же самое с файлом Excel и она работает просто отлично. Попытка использовать тот же принцип здесь с PDF файла. [HttpGet ( "ExportPdf / {StockId}")] общественность IActionResult ExportPdf (интермедиат StockId) {строка имя_файла = "test.pdf"; MemoryStream MemoryStream = новый MemoryStream (); // Создание PDF документа документа Документ = новый документ (PageSize.A4, 25, 25, 25, 25); PDFWriter PDFWriter = PdfWriter.GetInstance (документ, MemoryStream); document.Open (); document.Add (новый пункт ( "Hello World")); document.close (); memoryStream.Position = 0; вернуть файл (MemoryStream, "
SeeSharpDevGuy
1

голосов
0

ответ
260

Просмотры

System.TypeLoadException (при доступе к стандартным 4.6.1 Визуальных библиотекам базового класса .NET из ядра ASP.Net 2.0 Web API)

У меня есть стандартный 4.6.1 Visual Basic библиотеки классов .Net и ядра ASP.Net 2.0 Web API проект, созданный с помощью C #. Я пытаюсь передать массив объектов из веб-API для функции в Visual Basic библиотеки классов и получить объект ответа. Я получаю и ошибка, System.TypeLoadException: Не удалось загрузить тип 'Microsoft.VisualBasic.Information' из сборки 'Microsoft.VisualBasic, Version = 10.0.3.0, Culture = нейтрально, PublicKeyToken = b03f5f7f11d50a3a. Является ASP.Net Ядро 2.0 не совместимы в потребляющих Visual Basic библиотека классов .NET Standard? Может кто-нибудь, пожалуйста, помогите мне в этом?
user833011
1

голосов
0

ответ
246

Просмотры

IServiceCollection не содержит определения для AddQuartz

Я пытаюсь использовать кварцевый sheduker в моем проекте ядра жереха 2.0. Я скачал кварцевые 3.0.4 с помощью NuGet и после этого я добавил services.AddQuartz (новые QuartezOptions {}); для функции ConfigureService в Startup.cs У меня тоже есть такая же проблема с app.UseQuartz () Thats, как Startup.cs смотрит прямо сейчас: с помощью AspProj.Map; используя Microsoft.Extensions.Configuration; используя Microsoft.EntityFrameworkCore; используя Microsoft.Extensions.Logging; используя Microsoft.Extensions.DependencyInjection; используя Microsoft.Extensions.Options; используя Swashbuckle.AspNetCore.Swagger; используя Microsoft.AspNetCore.Builder; используя Microsoft.AspNetCore.Hosting; используя кварц; Пространство имен {AspProj общественного класса Запуск {запуска (конфигурация наследуют IConfiguration) публичное {Конфигурация = конфигурации; } Конфигурация общественного {наследуют IConfiguration получить; } // Этот метод вызывается средой выполнения. Используйте этот метод, чтобы добавить услуги в контейнер. общественный недействительный ConfigureServices (IServiceCollection услуга) {services.AddDbContext (OPT => opt.UseSqlServer (Configuration.GetConnectionString ( "DB"))); services.AddScoped (); services.AddMvc (); services.AddSwaggerGen (с => {c.SwaggerDoc ( "v1", новая информация {Title = "API", Version = "v1"});}); services.AddQuartz (новые QuartezOptions {}); } // Этот метод вызывается средой выполнения. Этот метод используется для настройки трубопровода запроса HTTP. общественного недействительной Настройка (IApplicationBuilder приложения, IHostingEnvironment окр) {если (env.IsDevelopment ()) {app.UseDeveloperExceptionPage (); } Еще {app.UseExceptionHandler ( "/ Home / Error"); } App.UseSwagger (); app.UseSwaggerUI (с => {c.SwaggerEndpoint ( "/ чванство / v1 / swagger.json", "DBAPI V1");}); app.UseStaticFiles (); app.UseMvc (маршруты => {routes.MapRoute (название: "по умолчанию", шаблон: "{контроллер = Главная} / {действие = Индекс} / {ID}");}); app.UseQuartz (); }}} Я попытался соединить различные пространства имен Quartz за счет использования, но он не имеет никакой пользы. Я просто продолжаю получать «IServiceCollection не содержит определение для AddQuartz» от визуального экрана студии 2017. ошибок я не могу найти какую-либо информацию о ком-то с той же проблемой, как и я. Разве Sombody знает,
Sektor
1

голосов
1

ответ
100

Просмотры

Когда следует использовать Scoped в .netcore API?

Когда WebAPI обрабатывает запрос, он использует AsyncLocal- значение, все одноэлементные в контейнере находятся в области видимости на запрос неявно. В какой ситуации вы бы зарегистрировать контекстную услугу?
micah
1

голосов
1

ответ
422

Просмотры

подробная информация в разработке ядра в режиме asp.net

Я пытаюсь использовать Microsoft Graph API в моей сети. Все выглядит, как хорошо работает на моем компьютере, но когда мой товарищ по команде клонирует проект на своем компьютере, то появится сообщение «Произошла ошибка при обработке запроса.» и давайте режим открытой разработки, чтобы увидеть больше информации. сообщение об ошибке инжир Мы сделали то, что он сказал, добавив переменную окружения. Но мы до сих пор не могу понять, как получить ошибку и что ошибка.
Qiwen Guo
1

голосов
1

ответ
41

Просмотры

Можно ли цепь последующих запросов, где пункты в Dapper на основе результатов предыдущего запроса в том же соединении?

Можно ли использовать .QueryMultiple (или какой-либо другой метод) в Dapper, и использовать результаты каждого бывшего запроса, которые будут использоваться в ИНЕКЕ следующего запроса, без необходимости делать каждый запрос индивидуально, получить идентификатор, а затем .Query снова получить идентификатор и так далее. Например, строка SqlString = @ "выберите tableA_id из TABLEA где tableA_lastname = @lastname, выберите tableB_id из TableB WHERE tableB_id = tableA_id"; db.QueryMultiple (SqlString, новый {Lastname = "Smith"}). Это что-то вроде этого можно с Dapper или мне нужен вид или хранимую процедуру для достижения этой цели? Я могу использовать несколько присоединяется к одному SQL заявления, но в моем реальном запросе есть 7 присоединяется, и я не думаю, что я должен вернуться 7 объектов. Сейчас я просто с помощью объекта.
johnny
1

голосов
1

ответ
46

Просмотры

Files bigger than 4KB corrupted or empty uploading

Я не реализован в моем API контроллера для загрузки файлов с HTTP Postrequest, ничего сложным из того, что вы найдете в Интернете: общественный асинхронной Task Post () {если (string.IsNullOrEmpty (Request.GetMultipartBoundary ())) {вернуться StatusCode (415 ); } Длинного размера = Request.Form.Files.Sum (е => f.Length); вар Filepath = Path.Combine (_hostingEnvironment.ContentRootPath, "TempUploads"); Строка имя_файла = «»; Список tempFileName = новый список (); Еогеасп (вар formFile в Request.Form.Files) {имя_файла = formFile.FileName; Строка TIMESTAMP = DateTime.Now.ToString ( "yyyyMMddHHmmssfff"); имя_файла = fileName.Replace (Path.GetExtension (formFile.FileName), Timestamp + Path.GetExtension (formFile.FileName)); Filepath = Filepath + "\\" + Имя_файл; если (formFile.Length> 0) {используя (вар поток = новый FileStream (Filepath, FileMode.Create)) {ждут formFile.CopyToAsync (поток); }} TempFileName.Add (имя_файла); } Вернуть ОК (новый {tempFileName}); } Это добавляет TIMESTAMP к имени, но я уже пробовал и без него, и это ничего не меняет. Проблема, которую я получаю, что если я загружать файлы больше, чем вокруг 4KB (все еще очень маленький) они либо повреждены (не открывается) или пустой (одинаковое количество страниц, но все заготовки) и вес пару КБ больше. Добавить (Filename); } Вернуть ОК (новый {tempFileName}); } Это добавляет TIMESTAMP к имени, но я уже пробовал и без него, и это ничего не меняет. Проблема, которую я получаю, что если я загружать файлы больше, чем вокруг 4KB (все еще очень маленький) они либо повреждены (не открывается) или пустой (одинаковое количество страниц, но все заготовки) и вес пару КБ больше. Добавить (Filename); } Вернуть ОК (новый {tempFileName}); } Это добавляет TIMESTAMP к имени, но я уже пробовал и без него, и это ничего не меняет. Проблема, которую я получаю, что если я загружать файлы больше, чем вокруг 4KB (все еще очень маленький) они либо повреждены (не открывается) или пустой (одинаковое количество страниц, но все заготовки) и вес пару КБ больше.
Rep
1

голосов
1

ответ
49

Просмотры

Развертывание веб-приложение к лазурным пароль

Я развернут свой веб-приложение к лазури, выбирая создать новый вариант, который создал новый план App Service и App обслуживания. Мой код делится на Dropbox. Когда я попытался создать и развернуть из другого ноутбука, он не позволяет из-за неправильное удостоверении. Пароль был создан автоматически во время моего развертывания из другого ноутбука. Где я должен проверить, чтобы получить пароль учетного данных, так что я могу развернуть из моего второго ноутбука?
developer7788
1

голосов
0

ответ
177

Просмотры

Совместное использование Cookie между несколькими приложениями ASP.NET Ключевых

У меня есть вопрос, касающийся обмена печенья между несколькими приложениями ASP.NET Ключевых и Entity Framework. Краткий обзор архитектуры. Одно из приложений, позволяет называть его Project A, отвечают за предоставление просмотров необходимого пользователя. Другое приложение, Project B, является REST API, который содержит основной бизнес-логики, а также предлагая операции CRUD в базе данных SQL-сервера. Проект A отображает только данные, полученные от проекта B и должностей данных проекта В, который, в конечном счете, вставленной в базу данных. Я использую проверки подлинности на основе Cookie. Когда пользователь нажимает на кнопку отправки на странице входа в систему, имя пользователя отправляется Project B. Соответствующий метод действия контроллера в проекте B проверяет, является ли пользователь существует в базе данных. Если пользователь существует, то все пользователя» Претензии сохраняются в ClaimsPrincipal, которая затем используется для входа в пользователя с использованием метода AuthenticationHttpContextExtensions.SignInAsync. Вызывающие этот метод будет создавать кук аутентификации, как в моем понимании. Проект А, печенье, возвращаемый Project B расшифровываются и используется для вызова AuthenticationHttpContextExtensions.SignInAsync в проекте А. Мой вопрос, могу ли я избежать сохраняющиеся ключи к Filesystem? Если да, то как я могу расшифровать куки в приложение, которое не создал его? Заранее спасибо печенье возвращаемого Project B расшифровывается и используется для вызова AuthenticationHttpContextExtensions.SignInAsync в проекте А. Моего вопрос, могу ли я избежать сохраняющихся ключей к Filesystem? Если да, то как я могу расшифровать куки в приложение, которое не создал его? Заранее спасибо печенье возвращаемого Project B расшифровывается и используется для вызова AuthenticationHttpContextExtensions.SignInAsync в проекте А. Моего вопрос, могу ли я избежать сохраняющихся ключей к Filesystem? Если да, то как я могу расшифровать куки в приложение, которое не создал его? Заранее спасибо
MuM6oJuM6o
1

голосов
0

ответ
44

Просмотры

Сайт не обновляется в IIS 8.5

мы переживаем очень странный вопрос здесь, где наш веб-приложение не обновляется. Наше приложение построено на ASP MVC Core 2 и размещенный на Windows, IIS 8.5. Когда мы первоначально организовано наше веб-приложение, все работало нормально, однако, вопрос, когда мы пытались сделать какие-либо изменения / обновления на веб-приложения после создания изменения не появляются на нашем сайте. Например, если мы изменили HTML DIV где-то на странице входа с «необходимо войти в систему», чтобы «Некоторые другие сообщения» он все равно будет показывать «Пожалуйста, войдите». Мы смотрели в кэширования браузера, и это, безусловно, не является проблемой. Мы смотрели на кэширование вывода в IIS, и это не значит, что либо; нет никаких настроек или правил, которые были определены. Может ли быть сторона приложения настройки, которые мы пропускаем, что» S вызывает это странное поведение? Там, похоже, не будет ничего в файле web.config, что может оказаться причиной этой проблемы. Мы в полной растерянности и любая помощь очень ценится. Заранее спасибо.
paradozx
1

голосов
1

ответ
106

Просмотры

Как вернуть файл, а затем сделать переадресацию в MVC, C #, .net ядро ​​2.0

что я хочу, когда пользователь нажимает на кнопку в окне, необходимо загрузить файл XML, а затем должен вернуться в ту же точку зрения. общественного асинхронной Задача Логин (LoginViewModel модель) {вернуться RedirectToAction (nameof (GetFile)); } Я определил новый IActionResult, а затем вернулся в файл, как показано ниже. общественных асинхронной Task GetFile () {байт [] fileBytes = System.IO.File.ReadAllBytes ( "myfile.xml"); строка файла = "myfile.xml"; Возврат файла (fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, имя файла); } Этот загружаемый файл в браузере, но не может сделать перенаправление. Это возможно. если это не правильный путь, то как я могу сделать это с помощью .net ядра 2.0. надеюсь, что ваша помощь в этом.
Marlon Brando
1

голосов
0

ответ
286

Просмотры

управление пользователями роли основного asp.net бритвы

Работа на бритве страница проекта Asp.net ядра, и мне нужно интегрировать систему управления ролью / разрешения в проекте. Проект имеет 3 компонента. MVC (веб-интерфейс), WebAPI (отдельный проект, для доступа к БД) и базы данных. Поэтому у меня есть 2 проблемы для управления. Первое шоу интерфейс для пользователя, если у них есть разрешение и вторые проверить разрешения для отображения данных. Если бы я сохранить свою роль в претензии пользователя HttpContext было бы так много, чтобы сохранить там? (Может быть, мне нужно больше, чем 50 роль в HttpContext требования пользователя) Или я должен проверить разрешение (получить список разрешений от API-> базы данных) перед каждым запросом? Нужна консультация спасибо
S. Aziz Kazdal
1

голосов
1

ответ
49

Просмотры

Delete files in Edit view

В моем приложении я пытаюсь удалить отдельные файлы из редактирования зрения. Он работает нормально, но не обновляет сайт. Пункт в FileDetails класса содержит Id, расширение, FileName и TicketID (который связан с классом Ticket) Мой код:. Метод в Scripts Контроллера @section {$ ( 'DeleteItem') нажмите (функция (е) {e.preventDefault () ; вар $ Ctrl = $ (это), если (подтверждение ( 'вы действительно хотите удалить этот файл?')) {$ .ajax ({URL: '@ Url.Action ( "DeleteFile")', введите: ' POST», данные: {идентификатор: $ (это) .data ( 'ID')}.}) Молодцы (функция (данные) {если (data.Result == "OK") {$ ctrl.closest ( 'ли' ) .remove ();} иначе, если (data.Result. Сообщение) {Alert (data.Result.Message); }}) Не (функция () {Alert ( "Существует что-то неправильно Пожалуйста, попробуйте еще раз.".).})}}); } Загрузить один или несколько файлов @foreach (Var пункт в Model.Ticket.FileDetails) {@ item.FileName X} Я получаю TypeError: data.Result не определен
Deeadline
1

голосов
0

ответ
154

Просмотры

Единый вход с OpenIdConnect в .net ядра - перенаправление URL

Я использую SSO против Azure AD в моей основной .net приложения. Б OpenIdConnect для аутентификации. В настоящее время после входа в систему он перенаправляется на главную страницу. Но я хочу, чтобы перенаправить его к определенному контроллеру, который пользователь щелкает перед входом. Если mysite.com мой сайт и, если пользователь нажмет на mysite.com/help он должен быть перенаправлен на страницу помощи после SSO. Если пользователь нажимает на mysite.com/forum, после SSO он должен быть перенаправлен на страницу форума. Как этого добиться?
Sridevi
1

голосов
1

ответ
266

Просмотры

_Context.SaveChangesAsync () не выполняется в командной строке

Я использовал _Context.SaveChangesAsync () во многих местах в моем проекте, и он отлично работает, за исключением того, здесь // хэш пароля изменить логическое значение ложного набора соли сохранения ждут TryUpdateModelAsync (пользователя); Хэш хэш = новый хэш (); Строка соль = hash.CreateSalt (); user.Salt = соль; user.Password = hash.HashPassword (новый_пароль, соль); user.ChangePassword = ложь; ждут _Context.SaveChangesAsync (); Состояние модели верно, и оно должно работать нормально, но даже в командной строке (Microsoft.EntityFrameworkCore.Database.Command) не показывает на всех, и база данных не обновляется, не ошибка или исключение не бросают какие-либо идеи? это весь класс общественного класса ChangePasswordModel: PageModel {публичная строка CurrentPassword {множество; получить; } Публичная строка NewPassword {множество; получить; } Общего пользователя Пользователь {установлен; получить; } Частных чтения PROJECTDATABASE_MDFContext _Context; общественного ChangePasswordModel (PROJECTDATABASE_MDFContext DatabaseContext) {_Context = DatabaseContext; } Общественного недействительными OnGet () {} общественного асинхронной Task OnPostAsync () {INT TempId = 0; попробуйте {TempId = Convert.ToInt32 (User.FindFirst (претензия => claim.Type == System.Security.Claims.ClaimTypes.NameIdentifier) ​​?. Value); } Поймать {}, если (TempId> 0) {пользователь = новый пользователь (); пользовательские = ждут _Context.User.AsNoTracking (). Включить (т => m.Role) .FirstOrDefaultAsync (м => m.UserId == TempId); если (пользователь! = NULL) {CurrentPassword = Request.Form [ "CurrentPassword"]; Новый_пароль = Request.Form [ "новый_пароль"]; // если пароль хешируется если (user.ChangePassword == FALSE) {Hash хэш = новый Hash (); CurrentPassword = hash.HashPassword (CurrentPassword, user.Salt); } Если (user.Password == CurrentPassword) {если (NewPassword.Length> = 8) {// хэш пароля изменить логическое значение для ложного набора сохранить соль ждать TryUpdateModelAsync (пользователь); Хэш хэш = новый хэш (); Строка соль = hash.CreateSalt (); user.Salt = соль; user.Password = hash.HashPassword (новый_пароль, соль); user.ChangePassword = ложь; ждут _Context.SaveChangesAsync (); если (user.Role.RoleName == "Student") {вернуться RedirectToPage ( "Пользователи / StudentProfile", новый {идентификатор = user.UserId}); } Еще {вернуть RedirectToPage ( "Пользователи / StaffMemberProfile", новый {идентификатор = user.UserId}); }} Еще {ModelState.AddModelError (» }}} Вернуть страницу (); }} До сохранения пользователя заполняются правильно с обновленными значениями, так что проблема не в методе хэша }}} Вернуть страницу (); }} До сохранения пользователя заполняются правильно с обновленными значениями, так что проблема не в методе хэша
Doaa Radwan
1

голосов
0

ответ
50

Просмотры

Entity Framework Ядро не создает миграции автоматически

Я хотел бы создать таблицу при запуске с Entity Framework. У меня есть контекст в отдельном проекте. Startup.cs в методе:. Настройка (IApplicationBuilder приложение) попробовать {используя (. Объем вар = app.ApplicationServices.GetService () CreateScope ()) {scope.ServiceProvider.GetRequiredService () Database.Migrate (); }} Задвижка (Исключение ех) {выбросить; } Этот кусок кода не создает таблицу. Однако, когда я пытался создать миграцию путем Dotnet эф миграции добавить AddTable_CLient -c MyContext. Таблица создается, но scope.ServiceProvider.GetRequiredService () Database.Migrate (). оленья кожа создать таблицу для меня. И это показывает таблица была создана уже. DesignTimeDbContextFactory общественного класса: IDesignTimeDbContextFactory {общественного MyContext CreateDbContext (строка [] арг) {вар строитель = новый DbContextOptionsBuilder (); builder.UseSqlServer ( "Server = локальный; Database = ClientManagement; Trusted_Connection = True; MultipleActiveResultSets = истина", optionsBuilder => optionsBuilder.MigrationsAssembly (TypeOf (MyContext) .GetTypeInfo () Assembly.GetName () Name)..); возвращают новые VerittyContext (builder.Options); }} MyContext.cs общественного DbSet Компания {получить; задавать; } Общественного DbSet CompanyContact {получить; задавать; } Защищен переопределение недействительными OnModelCreating (ModelBuilder MODELBUILDER) {Еогеасп (. Вар отношения в modelBuilder.Model.GetEntityTypes () SelectMany (е => e.GetForeignKeys ())) {relationship.DeleteBehavior = DeleteBehavior.Restrict; } Base.OnModelCreating (MODELBUILDER); modelBuilder.Entity (); modelBuilder.Entity (); } Я хотел таблицу автоматически создается, когда таблица добавляется в класс Context. Я не хотел, чтобы добавить миграции вручную. Есть ли с помощью кода ниже, не так, как добавить таблицу в базу данных автоматически? используя (вар сфера = app.ApplicationServices.GetService () CreateScope ().) {scope.ServiceProvider.GetRequiredService () Database.Migrate (). } Пожалуйста помоги. Перенос (); } Пожалуйста помоги. Перенос (); } Пожалуйста помоги.
aakash
1

голосов
1

ответ
540

Просмотры

Как я могу использовать Asp.Net Core, 2,0-х в памяти класса TestServer для интеграции тестов, когда мой API требует авторизации токена?

Я работаю на ASP.NET ядра 2.0 Web API, и я хочу сделать некоторые интеграционные тесты, используя класс TestServer ASP.NET сердечника. Я использую XUnit в моих рамках тестирования, так что я создал класс TestServerFixture, который создает экземпляр TestServer в памяти, а затем использовать .CreateClient в TestServer (в), чтобы создать экземпляр HTTPClient. My Web API требует OAuth2.0 маркер доступа от моего Azure AD. Я установить это с помощью этого кода в моей Startup.cs, ConfigureServices метод: // Добавить Azure AD OAuth2.0 Authentication Services services.AddAuthentication (sharedOptions => {sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;}) .AddAzureAdBearer (опции => Configuration.Bind ( "AzureAd", опционы)); и в моих контроллеров, у меня есть [Авторизовать] атрибут класса. Так что для моей установки Интеграционных тестов, у меня есть метод в моем TestServerFixture, который получает действительный маркер от Azure AD и добавить его в мой заголовок запроса клиента следующим образом; Client.DefaultRequestHeaders.Authorization = новый AuthenticationHeaderValue ( "Канал", ждут _testServerFixture.GetAccessToken ()); Когда я отлаживать интеграционный тест, я могу видеть, что запрос действительно содержит действительный маркер доступа, но я все еще получаю 401 Несанкционированные от API, когда я запускаю мой Integration Test. После выполнения некоторого рытья я нашел несколько ресурсов, которые говорят о подобной проблеме с TestServer, но связанные с проверкой подлинности, а не авторизации, так как я испытываю. Вот ссылки на эти ресурсы; https: // среда. ком / @ zbartl / аутентификация и-Asp-нетто-ядро-интеграционное тестирование, использующее-TestServer-15d47b03045a Как тест интеграции в качестве ASP 5 / Ядро Web API с [Авторизоваться] Атрибуты http://geeklearning.io/how -в-сделки-с-идентичностью-когда-тестирования-ан-Asp-нетто-ядро-приложения / Эти разговоры о присвоении ClaimsPrincipal к context.user с помощью пользовательского Middleware. Поскольку это основано на подлинности, а не авторизации, я не уверен, если я могу сделать что-то подобное для моих маркеров доступа. Я знаю, что в моей API, я могу получить доступ к HttpContext.User и вытащить значение AppId, которая является частью маркера доступа, так что, казалось бы, что проверка подлинности и авторизации и использование Context.User. Поэтому, прежде чем я горю время создания мой собственный промежуточного программного обеспечения для этой цели, Я хотел бы видеть, если кто уже рассматривал этот вопрос или, возможно, знают о NuGet, что делает то, что мне нужно. EDIT - РЕШЕНИЕ Я показываю это в случае, если кто-то работает в этом вопросе. Я в конечном итоге строить промежуточное, что Зак Bartlett, представленный в своем блоге, но сделать следующие изменения. общественного класса Переменные AuthenticatedTestRequestMiddleware {#region класса частной Const строка TestingAccessTokenAuthentication = "TestingAccessTokenAuthentication"; частная чтение RequestDelegate _next; Переменные #endregion Класс #region Конструктор (ы) публичное AuthenticatedTestRequestMiddleware (RequestDelegate следующий) {_next = следующий; } #Endregion Конструктор (s) публичный асинхронный Task Invoke (контекст HttpContext) {если (context.Request.Headers.Keys.Contains (» в верхней части его промежуточного слоя, а затем ссылается на TestingHeader в тесте для ключа в коллекции заголовка, как это; если (context.Request.Headers.Keys.Contains (TestingHeader) Действовать таким образом терпела неудачу для меня, пока я не положил строковый литерал вместо переменной в .Contains () пункт. Теперь моя интеграция тест проходит с 200 OK ответ. :)
1

голосов
0

ответ
90

Просмотры

Поддерживает ли https://github.com/jwaliszko/ExpressiveAnnotations ASP.NET Core 2?

С помощью диспетчера пакетов NuGet Я установил это: https://github.com/jwaliszko/ExpressiveAnnotations. Тем не менее, VS2017 сообщил конфликт как пакет требует .NET 4.6.1 рамки. Поддерживает ли этот пакет в 2 рамки ASP.NET сердечника?
user3602841
1

голосов
1

ответ
116

Просмотры

Авторизация в ASP.NET 2.0 Ядро с помощью провайдера OpenId

Я имею probles с прохождением претензий от внешней идентичности местного. Применение в основном QuickBooksASPNetCore2 Demo с добавлением OpenId поставщика удостоверений. Все, швы на работу, за исключением [Authorize (роли = «some_role»)] на тестовой странице Razer. Это код, который делает логику входа в систему, и _signInManager.GetExternalLoginInfoAsync (); возврат основной суммы всех требований от поставщика удостоверений (в том числе роли в рамках типа «http://schemas.microsoft.com/ws/2008/06/identity/claims/role»). свалка информации вар с претензиями общественных асинхронными Task OnGetCallbackAsync (строка ReturnUrl = NULL, строка remoteError = NULL) {если (remoteError! = NULL) {ErrorMessage = $ "Ошибка от внешнего поставщика: {remoteError}"; вернуться RedirectToPage ( "./ Войти"); } = вар информация ждут _signInManager.GetExternalLoginInfoAsync (); если (информация == NULL) {вернуться RedirectToPage ( "./ Войти"); } // Вход пользователя с этим внешним провайдером авторизации, если пользователь уже имеет логин. результат переменного = ждут _signInManager.ExternalLoginSignInAsync (info.LoginProvider, info.ProviderKey, isPersistent: истинный, bypassTwoFactor: истина); если (result.Succeeded) {_logger.LogInformation ( "{Имя} вошли в систему с {LoginProvider} провайдера.", info.Principal.Identity.Name, info.LoginProvider); ждут _signInManager.UpdateExternalAuthenticationTokensAsync (информация); вернуть LocalRedirect (Url.GetLocalUrl (ReturnUrl)); } Если (result.IsLockedOut) {вернуться RedirectToPage (». } Еще {// Если пользователь не имеет учетной записи, затем попросите пользователя, чтобы создать учетную запись. ReturnUrl = ReturnUrl; LoginProvider = info.LoginProvider; если (info.Principal.HasClaim (с => == ClaimTypes.Email Тип Ç)) {вход = новый InputModel {E-mail = info.Principal.FindFirstValue (ClaimTypes.Email)}; } Вернуть страницу (); }} Но когда этот метод выход, то User.Claims на Razor странице не имеет претензий роли. Он даже получает новый «http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier» претензии (с разными ID). Я пропустил что-то здесь? } Еще {// Если пользователь не имеет учетной записи, затем попросите пользователя, чтобы создать учетную запись. ReturnUrl = ReturnUrl; LoginProvider = info.LoginProvider; если (info.Principal.HasClaim (с => == ClaimTypes.Email Тип Ç)) {вход = новый InputModel {E-mail = info.Principal.FindFirstValue (ClaimTypes.Email)}; } Вернуть страницу (); }} Но когда этот метод выход, то User.Claims на Razor странице не имеет претензий роли. Он даже получает новый «http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier» претензии (с разными ID). Я пропустил что-то здесь? LoginProvider = info.LoginProvider; если (info.Principal.HasClaim (с => == ClaimTypes.Email Тип Ç)) {вход = новый InputModel {E-mail = info.Principal.FindFirstValue (ClaimTypes.Email)}; } Вернуть страницу (); }} Но когда этот метод выход, то User.Claims на Razor странице не имеет претензий роли. Он даже получает новый «http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier» претензии (с разными ID). Я пропустил что-то здесь? LoginProvider = info.LoginProvider; если (info.Principal.HasClaim (с => == ClaimTypes.Email Тип Ç)) {вход = новый InputModel {E-mail = info.Principal.FindFirstValue (ClaimTypes.Email)}; } Вернуть страницу (); }} Но когда этот метод выход, то User.Claims на Razor странице не имеет претензий роли. Он даже получает новый «http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier» претензии (с разными ID). Я пропустил что-то здесь? Эл. адрес) }; } Вернуть страницу (); }} Но когда этот метод выход, то User.Claims на Razor странице не имеет претензий роли. Он даже получает новый «http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier» претензии (с разными ID). Я пропустил что-то здесь? Эл. адрес) }; } Вернуть страницу (); }} Но когда этот метод выход, то User.Claims на Razor странице не имеет претензий роли. Он даже получает новый «http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier» претензии (с разными ID). Я пропустил что-то здесь?
Eugen
1

голосов
0

ответ
70

Просмотры

В Swashbuckle как отфильтровать модель на основе кода состояния

У меня есть апи проект, где каждый метод возвращает свой ответ, завернутый в объекте ApiResponse. Класс выглядит следующим образом общественного класса ApiResponse {[JsonProperty (NullValueHandling = NullValueHandling.Ignore)] общественность T Data {получить; задавать; } [JsonProperty (NullValueHandling = NullValueHandling.Ignore)] Публичный список ошибок {получить; задавать; } [JsonProperty (NullValueHandling = NullValueHandling.Ignore)] общественное ResponseLinks ссылка {получить; задавать; } [JsonProperty (NullValueHandling = NullValueHandling.Ignore)] общественного ResponseMeta Мета {получить; задавать; }} В соответствии со спецификацией Json Api http://jsonapi.org/ данных и ошибки не должны появляться в ответ вместе. 1. Как получить чванства документ показывать только ошибки, когда код состояния не 200 и исключить ошибки, когда это 200? Я мог бы сделать 2 отдельных объектов, но я действительно предпочел бы, чтобы держать его в качестве одного класса, так что объект ApiResponse может решить, что является правильным способом построить себя. 2. Кроме того, чванство UI перечисляет все итерации дженериков в моделях Как очистить его так, это показывает только 1 ApiResponse модель? Пример вопроса 2
user3599659
1

голосов
0

ответ
165

Просмотры

DotNet ядро ​​2,0 - Logging пользовательских событий с использованием LoggerMessage

Я пытался заменить TelemetryClient в моем коде с шаблоном LoggerMessage. (Https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/loggermessage?view=aspnetcore-2.1) Я не мог найти способ, чтобы войти Пользовательские события в этой модели. Есть ли способ, что я могу напрямую войти пользовательские события с помощью AppInsights Middleware, представленного в ASP .NET Ядре 2.0? Или это нормально, если я придерживаюсь телеметрического Client и игнорировать эксплуатационные преимущества заявленного LoggerMessage?
Viktor KurDz
1

голосов
1

ответ
115

Просмотры

Testing .NET Core Controller View Component

In .NET Core we have a controller action that's calling a ViewComponent which has a dependency injection, following the pattern in the Microsoft docs here. If we have a controller action that returns a rendered view like this: public class MyController : Controller { private readonly IToDoContext _todoContext; public MyController(IToDoContext todoContext) { _todoContext = todoContext; } public IActionResult IndexVC() { return ViewComponent("PriorityList", new { maxPriority = 3, isDone = false }); } } And a ViewComponent that has a dependency injection like this: public class PriorityListViewComponent : ViewComponent { private readonly ToDoContext db; public PriorityListViewComponent(ToDoContext context) { db = context; } public async Task InvokeAsync(int maxPriority, bool isDone) { var items = await GetItemsAsync(maxPriority, isDone); return View(items); } private Task GetItemsAsync(int maxPriority, bool isDone) { return db.ToDo.Where(x => x.IsDone == isDone && x.Priority
Robert Corvus
1

голосов
1

ответ
420

Просмотры

RazorPages: Модель не получает экземпляр в Partial с Page модели

Im тестируя RazorPages и .Net Ядро 2.1 Я только что приняли новый шаблон проекта и создали частичный. Эти соответствующие / добавлены содержимое файлов. Моя проблема заключается в 1) Немедленной проблеме: В парциальной: OnGetAsync (ни публичной ничтожной OnGet ()) не дозвонилась. и я получаю NullReference-exceptiion в Виде на модель на линию @foreach (вар пункт в Model.ImageBE) {Я попытался вырезать DB-вызов и excplicitly называет OnGet от застройщик, но нет никакой разницы. 2) Я не могу найти пример, когда страница (индекс) имеет экземпляр модели парциальных (ImageGalleryModel ниже). но это единственное, что компилятор будет принимать. Могу ли я сделать это совершенно неправильно? Index.cshtml (страница) ... [частичное название = "_ ImageGallery" модель = "Model.ImageGallery" /] ... Index.cshtml.cs общественного класса IndexModel: PageModel {ApplicationDbContext mContext; общественный ImageGalleryModel ImageGallery; общественного IndexModel (ApplicationDbContext контекст) {mContext = контекст; ImageGallery = новый ImageGalleryModel (mContext); } Общественный недействительный OnGet () {}} _ImageGallery.cshtml (парциальный) [класс таблицы = "таблица"] @foreach (вар пункт в Model.ImageBE) {... _ImageGallery.cshtml.cs класса ImageGalleryModel общественности: PageModel {частного ApplicationDbContext _context только для чтения; общественного IList ImageBE {получить; задавать; } Общественных ImageGalleryModel (Photiqo.Data.ApplicationDbContext контекст) {_context = контекст; } Общественных асинхронной Task OnGetAsync () {ImageBE = _context.ImageBE ждут. ToListAsync (); }}
Cowborg
1

голосов
1

ответ
416

Просмотры

How to deal with ASP.NET Core 2.0 Chunked Web Api Call with EF Core

У меня есть Угловое 6 приложение, которое делает вызовы к контроллерам Web API, которые используют EF Core. По умолчанию EF ядро ​​не будет загружать внешние объекты (? Отложенную загрузка может быть), поэтому следующие предложения, я использовал следующий код, чтобы включить такие объекты: члены вара = ждет _context.Person.Include (х => x.PersonNavigation) .гд (х => x.DepartmentId == ID) .ToListAsync (); Проблема заключается в том, когда контроллер возвращает элементы, он посылает заголовок: Transfer-Encoding: Chunked Создание результата / данные нечитаемыми мой угловыми применения (следовало ожидать, я думаю, так как ответ фрагментированное). Какие-либо предложения? Это стандартное поведение Web API? Что я могу сделать, чтобы вернуть жизнеспособный JSON? Спасибо Изменить # 1, за джонни 5 запроса: API управление: общественное асинхронным Task GetDepartmentMembers ([FromRoute] Инт ид) {члены вара = ждет _context.Person. Включить (х => x.PersonNavigation) .гд (х => x.DepartmentId == ID) .ToListAsync (); если (члены == NULL) {вернуться NotFound (); } Возврата OK (пользователей); } Угловая служба: getDepartmentMembers (DepartmentID: число): Наблюдаемое {вернуться this.http.get ( 'HTTP: // локальный: 49659 / API / отделов /' + DepartmentID + '/') членов; } Угловой компонент: getDepartmentMembers (DepartmentID: число) {this.departmentService.getDepartmentMembers (DepartmentID) .subscribe (данные => {this.departmentMembers = данные;}); } Заголовки ответов: 49659 / API / отделов /»+ DepartmentID + '/') членов; } Угловой компонент: getDepartmentMembers (DepartmentID: число) {this.departmentService.getDepartmentMembers (DepartmentID) .subscribe (данные => {this.departmentMembers = данные;}); } Заголовки ответов: 49659 / API / отделов /»+ DepartmentID + '/') членов; } Угловой компонент: getDepartmentMembers (DepartmentID: число) {this.departmentService.getDepartmentMembers (DepartmentID) .subscribe (данные => {this.departmentMembers = данные;}); } Заголовки ответов:
Naner
1

голосов
1

ответ
1.4k

Просмотры

Перенаправление на другую страницу с _Layout.cshtml

Как перенаправить на другую страницу в пределах страницы _layout.cshtm в основном asp.net бритвы. Я делаю проверку и пользователь вошел в систему, если не будет перенаправлен на другую страницу. @using Microsoft.AspNetCore.Identity @using CronoParque.Model @Inject SignInManager SignInManager @Inject UserManager UserManager @if (SignInManager.IsSignedIn (Пользователь)) {Ola @ UserManager.GetUserName (Пользователь)! Sair} еще {// нацеливание здесь}
Renato
1

голосов
1

ответ
69

Просмотры

Использование АСП-валидации для без привязки к модели собственности

В прошлом я всегда использовал следующий код, чтобы сделать что-то глобально четкий, как с формой входа, когда имя пользователя или пароль не корректны. Я не хочу это сообщение об ошибке для связи с конкретной моделью собственности, как имя пользователя или пароль, но только обычай ValidationMessage. Контроллер: ModelState.AddModelError ( «Комбинация», «Пароль или имя пользователя не правильно.»); Вид: @ Html.ValidationMessage ( «Combination») В новых примерах, которые генерируются с VS17 использует не @ Html.ValidationMessageFor () и @ Html.ValidationMessage () больше, но легче Теперь проблема возникает, что я ничего не могу найти как Asp-проверка = "Комбинация", которая заменяет @ Html.ValidationMessage (). Это совершенно разные, я сделал что-то пропустил, или мне нужно использовать старую @Html.
Max
1

голосов
0

ответ
89

Просмотры

Swashbuckle.AspNetCore - AWS Lambda - XML ​​Документация

Я использую Swashbuckle.ASPNetcore 3.0.0. Мой WebAPI в .net ядре 2.0. Когда я включить функцию XML документации, и в свойствах проекта и линии (2) в файле startup.cs, он отлично работает локально. Когда я публикую на AWS Lambda я получаю «INTERAL ошибку сервера», у меня есть чувство, что есть что-то делать с местоположением XML-файл. Я не уверен, если он пытается записать файл в лямбда, или если этот файл является статическим и толкнул с кодом, когда я публикую. Я хотел бы использовать дополнительную информацию /// для дальнейшего повышения основной чванство документ, который получает созданную без документации XML. Может кто-нибудь возносите посоветовать здесь?
Steve Groner
1

голосов
1

ответ
401

Просмотры

Do not expire cached item in IMemoryCache implementation

Since IMemoryCache does not give too much info about the cached items I was thinking to implement something custom in order to keep some data about items in the cache like the key, AbsoluteExpiration properties etc. Here is my implementation of IMemoryCache: public class MemoryCacheService : IMemoryCache { private readonly MemoryCache _memoryCache; private readonly List _allKeys; private readonly string AllKeys = "___All__Keys___"; public MemoryCacheService() { _memoryCache = new MemoryCache(new MemoryCacheOptions()); _allKeys = new List(); _memoryCache.Set(AllKeys, _allKeys, new MemoryCacheEntryOptions { AbsoluteExpiration = DateTimeOffset.MaxValue }); } public void Dispose() { _memoryCache.Dispose(); } public bool TryGetValue(object key, out object value) { return _memoryCache.TryGetValue(key, out value); } public ICacheEntry CreateEntry(object key) { var entry = _memoryCache.CreateEntry(key); entry.RegisterPostEvictionCallback((o, v, reason, state) => { if (reason.In(EvictionReason.Capacity, EvictionReason.Expired, EvictionReason.TokenExpired)) { var item = _allKeys.FirstOrDefault(x => x.Key.ToString() == o.ToString()); if (item != null) { _allKeys.Remove(item); } } }); if (!_allKeys.Select(x => x.Key).Contains(key)) { _allKeys.Add(new CacheItemRelevantData { Key = entry.Key, AbsoluteExpiration = entry.AbsoluteExpiration, Priority = entry.Priority, AbsoluteExpirationRelativeToNow = entry.AbsoluteExpirationRelativeToNow, Size = entry.Size }); } return entry; } public void Remove(object key) { var entry = _allKeys.FirstOrDefault(x => x.Key.ToString() == key.ToString()); if (entry != null) { _allKeys.Remove(entry); } _memoryCache.Remove(key); } } But since _allKeys is created to store the relevant data about cached items I dont want it to expire. Is there any way to set expire time to none or something similar and the _allKeys list will remain in cache forever ?
Rajmond Burgaj
1

голосов
2

ответ
535

Просмотры

Redis - ERR неизвестной команды 'EVAL'

Я пытаюсь использовать Redis кэша (Microsoft.Extensions.Caching.Redis) с .net ядром 2.1 и для этой цели я следовал этому учебнику https://dotnetcoretutorials.com/2017/01/06/using-redis-cache- нетто-ядро / Теперь проблема, когда я пытаюсь получить данные с помощью _distributedCache.GetStringAsync (ключа) Я получаю эту ошибку «ERR неизвестной команды" EVAL». Я также искал такого рода ошибку и обнаружил, что это могло произойти из-за старую версию Redis, но я использую последнюю версию Microsoft.Extension.Caching.Redis (версия 2.1.1) Вот мой код: общественный асинхронный Task RetrieveCache (строка ключ) {данные вара = ждет _distributedCache.GetStringAsync (ключ); если (string.IsNullOrWhiteSpace (данные)) возвращение ""; возвращать данные; } Appsettings.json: "RedisServer": { "Сервер": "12.66.909.61:6379,password=pwd", "Имя_экземпляра": "Store.Toys"} и startup.cs services.AddDistributedRedisCache (опция => {option.Configuration = Конфигурация [» RedisServer: Сервер "]; option.InstanceName = Конфигурация [" RedisServer: Имя_экземпляр "];}); любая помощь?
Ask
1

голосов
0

ответ
430

Просмотры

Печать с сердечником aspt.net

Мне нужно сделать печати содержимого с помощью ядра ASP.NET. Я думал о вложении на стороне клиента, но в веб-поиска, то мне кажется, что это не очень хороший вариант, потому что эта печать должна быть выполнена без предварительного просмотра, а также может быть сделано на любом принтере, особенно тепловыми , Я получаю возможность печати на стороне сервера через C #, но содержание я нашел использование Api PrintDocument, и я не encotrei установить в ядре ASP.NET. Как действовать до этой ситуации? Кто-нибудь знает другой вариант или знать, как установить PrintDocument в ядре asp.net?
Renato

Просмотр дополнительных вопросов