Как я могу запретить моему всплывающему окну запрашивать учетные данные после публикации на сервере в MVC? - PullRequest
0 голосов
/ 17 июня 2019

У меня есть проект, который выполняется в MVC, где в определенных представлениях, которые отображают таблицу из базы данных, пользователь сможет нажать кнопку в заданной строке, чтобы отредактировать эти данные. При нажатии кнопки появится всплывающее окно, в котором пользователь может редактировать данные. Интересно отметить, что у меня нет никаких проблем, когда я запускаю это локально.

Однако, как только я опубликую это на своем веб-сервере, проблема начинается. После аутентификации на веб-сайте ожидаемый результат заключается в том, что мне больше не нужно запрашивать учетные данные. Если я просто просматриваю различные виды, этот результат верен. Однако, как только я нажимаю эту кнопку для всплывающего окна, я получаю бесконечный цикл запроса учетных данных. Даже если я ввожу свои учетные данные, он просто запрашивает снова без каких-либо ошибок.

Во-первых, мне даже не нужно спрашивать учетные данные, когда я уже передал их при входе на сайт. Почему это происходит?

Я пытался поиграться с настройками проекта и настройками IIS, но безрезультатно. В настоящее время для проекта у меня есть следующие настройки:

  • Анонимная аутентификация: включена управляемая
  • Режим конвейера: встроенный
  • SSL включен: False
  • Аутентификация Windows: включена

В IIS настроены следующие параметры:

  • .Net Authorization Rules: разрешить всем унаследованным пользователям
  • Аутентификация: Annoymous и Windows оба включены
  • Правила авторизации: разрешить всем пользователям
  • Настройки SSL: принимать сертификаты клиента

Для самого всплывающего окна я просто использую модальный диалог, как показано ниже:

View

Index.cshtml

<table>
@foreach (var item in Model)
    <tr>
            <td>
                <button class="btn btn-primary" onclick="ActionAway(@item.AID)">Action Event</button>
            </td>
    </tr>
    }
        </tbody>
</table>

<div class="modal fade" id="myModal1">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <a href="#" class="close" data-dismiss="modal">&times;</a>
                <h3 class="modal-title">Action This Event</h3>
            </div>
            <div class="modal-body" id="myModalBodyDiv1">

            </div>
        </div>
    </div>
</div>
</div>

<script>
    var ActionAway = function (theid) {
        var url = "/Database/Edit?id=" + theid;

        $('#myModalBodyDiv1').load(url, function () {
            $('#myModal1').modal("show");
        })
    }

</script>

Я полагаю, что это как-то связано с тем, как IIS настроен на сервере, так как у меня он работает локально. Что я мог упустить, что вызывает эту проблему? Я ценю любые советы, которые можно дать по этому поводу!

1 Ответ

0 голосов
/ 18 июня 2019

После тонны устранения неполадок, я смог найти решение.Вопрос лежит в моем разделе.В частности, эта строка:

var url = "/Database/Edit?id=" + theid;

Это прекрасно работает локально, но как только я опубликовал его на сервере, мне пришлось изменить его на следующее:

var url = "//server/application/Database/Edit?id=" + theid;

I'mКонечно, есть более простой способ сделать это, но это было решение, которое я нашел сейчас.Спасибо всем за помощь!

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