Создание проверки входа, которая разрешает два способа доступа к веб-приложению

#asp.net #vb.net

#asp.net #vb.net

Вопрос:

У меня есть более старое веб-приложение, которое мы все еще используем.

Некоторые пользователи начинают использовать более новое приложение .Net Core Entity Framework, которое использует свой API для подключения к серверной части этого старого приложения.

Итак, в новом приложении я создал конечную точку API, которая отправляет идентификатор пользователя apiID в старое приложение.

Затем в старом приложении я написал эту небольшую функцию, которая ищет этот apiID и проверяет, разрешено ли соединение:

 Protected Function sec_IsSecureAPI() As Boolean
    If String.IsNullOrEmpty(Request.QueryString("apiID")) Then
        Return False
    Else
        Return True
    End If
End Function
  

И я использую его в функции Page_Init следующим образом:

 Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
    If sec_IsSecureAPI() Then
        ' let the user in...
    Else
        ' redirect to login page
    End If
End Sub
  

Таким образом, это работает для пользователей API, но блокирует тех пользователей, которые все еще используют старую систему напрямую.

Есть ли способ, которым я мог бы сделать так, чтобы старая система могла различать пользователя API и обычного пользователя?

Спасибо!

Комментарии:

1. Итак, предполагаем, что в старом API нет параметра запроса apiID? Будет ли в новом API когда-либо отсутствовать параметр запроса apiID?

2. @Hursey спасибо, да, старая система никогда не будет использовать apiID. Но новая система ВСЕГДА будет использовать его при попытке подключения. Спасибо!

3. Итак, вы могли бы использовать наличие apiID в качестве флага, чтобы указать, поступил ли запрос из любой системы. Если запрос. Строка запроса содержит apiID, затем новую аутентификацию, иначе старую аутентификацию