У меня есть служба HTTP REST WCF, и я связываюсь с ней с клиентом HTTP на другом языке программирования, который пишет свой собственный HTTP-протокол. Я хотел бы добавить поддержку базовой аутентификации WWW-Authenticate для моей службы WCF.
Мои методы выглядят так:
[WebInvoke(UriTemplate = "widgets", Method = "POST")]
public XElement CreateWidget(XElement e)
{
...
}
Возможно ли, чтобы я каким-то образом отфильтровывал входящие HTTP-запросы, поэтому я могу проверить правильную строку Basic auth, прежде чем она ударит каждый из методов REST, например CreateWidget
выше?
Примечание. Моя учетная запись является stord в моей базе данных.
В основном я хочу проверить это в заголовках запроса:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
, а затем я могу сам проанализировать эту строку и проверить u/p в базе данных.
Файл web.config выглядит следующим образом:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="DatabaseConnectionString" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Database;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime maxRequestLength="10485760" />
</system.web>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</modules>
</system.webServer>
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" maxReceivedMessageSize="1048576" maxBufferSize="1048576" />
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
</configuration>