Я хотел бы добавить простую аутентификацию к службам данных, пока только для ограничения доступа для определенных приложений с помощью простого токена.
Мне не нужна аутентификация домена или проверка подлинности с помощью форм.
Я много читал об аутентификации здесь:
http://franssenden.wordpress.com/2010/06/14/custom-security-odata-service-wcf-data-services/
http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/06/03/10482.aspx
http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/01/15/10119.aspx
http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2008/01/10/10100.aspx
К сожалению, все это требует много работы.Больше всего создаю кастомный IHttpModule.Должно быть более простое решение.
Я знаю, что когда я создаю контекст объекта на клиенте (WPF), я могу добавить учетные данные.
Uri uri = new Uri("http://localhost/myapp/odata.svc");
MyEntities ent= new MyEntities (uri);
ent.Credentials = new NetworkCredential("token", "zx5as9vxc5sa9h0vb6523cv56");
Но где я могу их прочитать (без реализации собственного IHttpModule)?
Я подумал, что могу использовать что-то в классе, например, реализацию Data Service:
protected override void OnStartProcessingRequest(ProcessRequestArgs args)
{
string cred = args.OperationContext.AbsoluteRequestUri.UserInfo;
}
Я не знаком с UserInfo, но описание для него стоит "Получает имя пользователя, пароль, ...)
Итак, у меня есть два основных вопроса:
Где я могу прочитать включенные учетные данные, введя ent.Credentials = new NetworkCredential ("token", "zx5as9vxc5sa9h0vb6523cv56");
Где я могу (если могу) установитьUserInfo в клиентском приложении и используйте его в методе OnStartProcessingRequest.
С уважением, Даниэль Сковронски