Как я могу пройти аутентификацию в приложении MVC Core из расширения Chrome? - PullRequest
0 голосов
/ 06 марта 2019

В моем манифесте расширения у меня есть:

"permissions": [
    "cookies",
    "https://localhost:5001/"
]

В моем методе Startup.cs ConfigureServices у меня есть:

services.AddCors(options =>
{
    options.AddPolicy(MyAllowSpecificOrigins,
    builder =>
    {
        builder.WithOrigins("https://localhost:5001/",
                            "chrome-extension://mdgfojbohoeindggojmfcphhobepgcbk/");
    });
});

И в методе Startup.cs Configure у меня есть:

app.UseCors(MyAllowSpecificOrigins);

То, что я пробовал до сих пор:

  1. После вызова кнопки window.open('Url_of_signin_page') и перенаправления обратно на исходную страницу после входа пользователя. Это устанавливает аутентификациюcookie, и когда я перехожу к конечной точке, которая требует аутентификации вручную, она работает.Однако вызовы XMLHttpRequest не отправляют cookie.
  2. Использование AJAX для извлечения HTML-кода формы входа и добавления его в качестве div к текущей странице, на которой запущено расширение.Проблема здесь заключается в том, что помощник по тегу формы MVC исключает хост из атрибута действия формы, и поскольку страница, на которой он находится, больше не находится в том же домене, что и приложение, оно не работает.Если я указываю действие формы вместо использования помощника по тегам, тогда проверка токенов защиты от подделки завершается неудачей, хотя я явно добавил @Html.AntiForgeryToken() в форму входа.

В конечном итоге я хочу, чтобы пользовательбыть в состоянии войти в приложение MVC Core и иметь расширение, чтобы иметь возможность делать аутентифицированные запросы к этому приложению MVC Core.Возможно ли это, и если да, то как?

Изменить, чтобы добавить: я устанавливаю withCredentials = true для XmlHttpRequest.

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