Ответы пользователя по тегу ASP.NET
  • Как сгенерировать 404 из view в asp.net core?

    Zarinov
    @Zarinov Автор вопроса
    Спасибо, нашел сам.
    https://stackoverflow.com/a/41484262/23509114

    Вот получившийся код, вдруг кому пригодиться:

    /*
     *  ...to startup
     *    app.UseMiddleware<AnsHttpExceptionHandler>();
     */
    public class MyHttpException(HttpStatusCode statusCode) : Exception
    {
      public HttpStatusCode StatusCode { get; set; } = statusCode;
    }
    
    public class MyHttpExceptionHandler(RequestDelegate pipeline)
    {
      private readonly RequestDelegate request = pipeline;
      public Task Invoke(HttpContext context) => return InvokeAsync(context);
      async Task InvokeAsync(HttpContext context)
      {
        try { await request(context); }
        catch (AnsHttpException exception)
        {
          context.Response.StatusCode = (int)exception.StatusCode;
          context.Response.Headers.Clear();
        }
      }
    }


    И пример использования на стороне представления:

    @{
      throw new MyHttpException(HttpStatusCode.NotFound);
    }
    Ответ написан
    Комментировать
  • Как добавить свой обработчик на событие авторизации в Asp.Net Core?

    Zarinov
    @Zarinov Автор вопроса
    Разобрался.
    Такой вариант работает (правда не знаю насколько это правильно)

    .AddOpenIdConnect(o =>
    {
    	...
    	o.Events.OnTokenValidated = x =>
    	{
    		Debug.WriteLine($"OnTokenValidated {x.Principal.Identity.Name}");
    		return Task.CompletedTask;
    	};
    });
    Ответ написан
    Комментировать
  • Как принудительно разлогинить пользователя в случе бана?

    Zarinov
    @Zarinov Автор вопроса
    Правильно ли я понимаю, что если установить небольшой срок жизни токена (или куки), то при его протухании произойдет повторное обращение к серверу авторизации и его уже не авторизуют, или такой номер не пройдет?
    Ответ написан
  • Как передать список чекбоксов в WebApi-контроллер?

    Zarinov
    @Zarinov Автор вопроса
    Забыл уточнить (запарился). Все отправляется ajax-ом, без отправки страницы. Соответственно принимает метод webapi-контролера (через форму то я умею, там вопросов нет)...
    Ответ написан
    Комментировать
  • Как из DOCX получить PDF на asp.net* (c#)?

    Zarinov
    @Zarinov Автор вопроса
    Если удастся правильно перенести оформление из OpenXML в PdfSharp.Pdf.PdfDocument, то задача будет решена. Но я не понимаю, что куда нужно переносить.

    Как вариант модификация исходного PDF-файла с помощью того же PdfSharp, тоже облегчила бы жизнь, но как?

    NUGET: PDFsharp-MigraDoc-GDI

    /// <summary>
    /// Генерация нового PDF
    /// </summary>
    private void CreateDPF()
    {
    	string fileResult = HostingEnvironment.MapPath("/Files/result.pdf");
    	var d = new Document();
    	var s = d.AddSection();
    	s.PageSetup.PageFormat = PageFormat.A4;
    	s.PageSetup.Orientation = Orientation.Portrait;
    	s.PageSetup.TopMargin = 10;
    	s.PageSetup.LeftMargin = 10;
    	s.PageSetup.BottomMargin = 10;
    	s.PageSetup.RightMargin = 10;
    	var p = s.AddParagraph();
    	p.AddText("Превед медвед!");
    	var r = new PdfDocumentRenderer(true, PdfFontEmbedding.Always);
    	r.Document = d;
    	r.RenderDocument();
    	r.PdfDocument.Save(fileResult);
    }
    
    /// <summary>
    /// Генерация PDF на основе другого PDF
    /// </summary>
    private void ConvertDPF()
    {
    	string fileSource = HostingEnvironment.MapPath("/Files/source.pdf");
    	string fileResult = HostingEnvironment.MapPath("/Files/result.pdf");
    	using (var src = PdfReader.Open(fileSource, PdfDocumentOpenMode.Import))
    	using (var res = new PdfDocument())
    	{
    		foreach (PdfPage page in src.Pages)
    		{
    			// что-то нужно сделать с этой page
    			res.AddPage(page);
    		}
    		res.Save(fileResult);
    	}			
    }
    Ответ написан
    Комментировать