#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, затем новую аутентификацию, иначе старую аутентификацию