У меня есть служба WCF, которая работает в моем веб-приложении, которое предоставляет данные приложению Silverlight и определяется следующим образом (с соответствующим файлом .svc) ....
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class DispatchService
{
[OperationContract]
public DateTime GetServerTime()
{
// Add your operation implementation here
return DateTime.Now;
}
Идея состоит в том, что пользователь входит на веб-сайт, а затем авторизуется для всех служб. Я не хочу иметь аспект входа в мое приложение Silverlight для аутентификации пользователей.
Поэтому я не хочу, чтобы кто-либо мог позвонить в мою службу, кто не аутентифицирован.
Могу ли я ...
Каким-то образом определить это для каждого контракта на эксплуатацию. Я заглянул внутрь объекта OperationContext, но не смог найти муравейник, который выделялся как способ определить, кем был пользователь.
Каким-то образом атрибут ServiceContract, чтобы метод мог использоваться только авторизованными пользователями?
Поместите что-нибудь в мой web.config, чтобы не допустить несанкционированного доступа пользователей к папке, содержащей службы?
Ваши мысли будут очень высоко оценены.
Спасибо.