Я пытался реализовать службу OData на основе модели структуры объекта, в которой аутентификация предоставляется Sql Azure.Я предоставляю доступ к строке / столбцу в базе данных.
Я хочу иметь возможность вызывать это из LinqPad, Excel и т. Д. В качестве безопасной службы.
Я пробовал различные схемы, определенные в стандартная серия , но, несмотря на возвращение 401, ни Excel, ни LinqPad не вспоминают с введенными мной именем пользователя и паролем.
Итак, я решил сделать имя пользователя / парольпараметр запроса (через SSL).Но оказывается, что это также незаконно (OData требует правильно сформированный URL без параметров запроса).
Итак, я подумал, почему бы не использовать WebGet для встраивания имени пользователя и пароля в URL, но я могу »чтобы это работало с исходным форматом OData в WCF:
<% @ ServiceHost Language = "C #" Factory = "System.Data.Services.DataServiceHostFactory, System.Data.Services, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089 "Service =" WebApplication5.OData "%>
public class OData : DataService< MyEntities >
{
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
}
protected override MyEntities CreateDataSource()
{
// create the OData source with the user name and password here
}
}
Кто-нибудь на самом деле заставил OData работать, когда имя пользователя и пароль передаются в источник?