HttpContext.SignOutAsync () не выходит из системы и не удаляет локальный файл cookie

Существует два метода удобства, названных getPageSize() и getPageSizeWithRotation().

Давайте посмотрим на пример:

PdfReader reader =
    new PdfReader("src/main/resources/pages.pdf");
show(reader.getPageSize(1));
show(reader.getPageSize(3));
show(reader.getPageSizeWithRotation(3));
show(reader.getPageSize(4));
show(reader.getPageSizeWithRotation(4));

В этом примере show() выглядит следующим образом:

public static void show(Rectangle rect) {
    System.out.print("llx: ");
    System.out.print(rect.getLeft());
    System.out.print(", lly: ");
    System.out.print(rect.getBottom());
    System.out.print(", urx: ");
    System.out.print(rect.getRight());
    System.out.print(", lly: ");
    System.out.print(rect.getTop());
    System.out.print(", rotation: ");
   System.out.println(rect.getRotation());
}

Это вывод:

llx: 0.0, lly: 0.0, urx: 595.0, lly: 842.0, rotation: 0
llx: 0.0, lly: 0.0, urx: 595.0, lly: 842.0, rotation: 0
llx: 0.0, lly: 0.0, urx: 842.0, lly: 595.0, rotation: 90
llx: 0.0, lly: 0.0, urx: 842.0, lly: 595.0, rotation: 0
llx: 0.0, lly: 0.0, urx: 842.0, lly: 595.0, rotation: 0

Page 3 (см. строку 4 в примере кода 3.8) является страницей A4, как страница 1 , но он ориентирован в ландшафте. Запись /MediaBox идентична записи, используемой для первой страницы [0 0 595 842], и поэтому getPageSize() возвращает тот же результат.

Страница находится в альбомной ориентации, потому что запись \Rotate в для словаря страницы установлено значение 90. Возможные значения для этой записи: 0 (это значение по умолчанию, если запись отсутствует), 90, 180 и 270.

Метод getPageSizeWithRotation() принимает это значение в Счет. Он меняет ширину и высоту, чтобы вы знали о различии. Он также дает вам значение записи /Rotate.

Page 4 также имеет ландшафтную ориентацию, но в этом случае вращение имитируется путем адаптации записи /MediaBox. В этом случае значение /MediaBox равно [0 0 842 595], и если есть запись /Rotate, его значение равно 0.

Это объясняет, почему вывод метода getPageSizeWithRotation() идентичен к выходу метода getPageSize().

Когда я прочитал ваш вопрос, я вижу, что вы ищете поворот. Это можно сделать с помощью метода getRotation().

Примечание: Этот текст скопирован из моей книги «ABC of PDF» (книга находится в разработке, вы можете скачать первые главы бесплатно). Образец кода можно найти здесь здесь .

1
задан Shahriyar 16 January 2019 в 17:10
поделиться

2 ответа

Для вашего текущего кода вы объединяете MVC Controller и Razor Page в одном проекте, но вы не настроили какой-либо маршрут для MVC Controller.

Во-первых, проверьте сгенерированный html для формы Logout, убедитесь, что он генерирует, как показано ниже:

<form method="post" id="logoutForm" action="/Logout/Logout">
    <button type="submit">Logout</button>
<input name="__RequestVerificationToken" type="hidden" value="xxx"></form>

Если нет, настройте свой маршрут MVC как

app.UseMvc(routes =>
{
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}");
});
[1110 ] Вот рабочая демонстрация TestCookiesAuth

0
ответ дан Tao Zhou 16 January 2019 в 17:10
поделиться

Не совсем то, что вы просите, но, возможно, этот подход поможет.

Я использую Asp.Net Core 2.2 и у меня есть метод Logout () ниже в контроллере учетных записей. Я использую сервис Identity и иду по этому пути для выхода из системы, а не HttpContext. Для меня это решение работает и удаляет файл cookie для входа в систему - по крайней мере, он работал, когда я проверял его несколько минут назад.

Он отличается от вашего кода тем, что я использую объект signInManager, а не объект HttpContext, и этот SignOutAsync () не принимает параметров.

Попробуйте, если хотите, и посмотрите, что вы получите. Обязательно вызовите AddIdentity () или его варианты в вашем методе startup.cs ConfigureServices.

enter image description here

0
ответ дан SRQ Coder 16 January 2019 в 17:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: