Я знаю, что аутентификация в классе webservicehost не полностью соответствует стандартам проверки подлинности (возвращает 403, а не запрашивает другой набор учетных данных, когда пользователь вводит неверные учетные данные).Как реализовать аутентификацию WebServiceHost?
Я все еще хотел бы реализовать эту базовую аутентификацию (имя пользователя и пароль в начале сеанса, HTTPS не нужно - см. Рисунок ниже), поскольку это соответствует моим потребностям для небольшого домашнего проекта.
код у меня есть для MYSERVICE выглядит следующим образом:
Imports System.IO
Imports System.Text
Imports System.ServiceModel
Imports System.ServiceModel.Web
Imports System.ServiceModel.Channels
<ServiceContract()>
Public Class myService
<OperationContract(), WebGet(UriTemplate:="/xml/{argument1}/{argument2}")>
Public Function XML(argument1 As String, argument2 As String) As Stream
requestCounter += 1
Console.WriteLine("xml data request at " & DateTime.Now.ToString() & ", request count= " & requestCounter)
Console.WriteLine(WebOperationContext.Current.IncomingRequest.UserAgent.ToString())
Return _ReturnXML("<xmlresponse><data><argument1>" & argument1 & "</argument1><argument2>" & argument2 & "</argument2></data><server><serverlivesince>" & serverStart.ToString() & "</serverlivesince><pageservetime>" & DateTime.Now.ToString() & "</pageservetime><requestcount>" & requestCounter & "</requestcount></server></xmlresponse>")
'returns the first two parameters, and the time and date
End Function
Private Shared Function _ReturnXML(_result As String) As Stream
Dim data = Encoding.UTF8.GetBytes(_result)
WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml; charset=utf-8"
WebOperationContext.Current.OutgoingResponse.ContentLength = data.Length
Return New MemoryStream(data)
End Function
End Class
Я тогда подобный код для возврата HTML, а также принимать другие комбинации параметров.
В моем главном классе я инстанцирован и открыл эту услугу как:
Dim varWebService = New WebServiceHost(GetType(MyWebService), New Uri("http://0.0.0.0/"))
varWebService.Open()
Может кто-нибудь дать мне код, чтобы реализовать эту простую аутентификацию? Или указать мне на тщательный учебник? Спасибо за любую помощь
Что вы пробовали? Что ты получил? Чего ты ожидал? –
Я еще ничего не пробовал, не знаю, как это сделать – rabbitt
Stack Overflow, как правило, дружественный к вопросам, которые имеют конкретную проблему. Мы склонны хмуриться вопросами, которые требуют идей. –