Службы с поддержкой Silverlight и совместимость с ASP.NET - PullRequest
2 голосов
/ 15 января 2010

При создании службы WCF с поддержкой Silverlight в исходный файл помещается следующая строка:

[AspNetCompatibilityRequirements(RequirementsMode =
    AspNetCompatibilityRequirementsMode.Allowed)]

Что это делает? Онлайн-помощь не имела для меня большого смысла.

Ответы [ 2 ]

3 голосов
/ 15 января 2010

В режиме совместимости службы WCF используют конвейер HTTP через реализацию IHttpHandler, аналогично тому, как обрабатываются запросы на страницы ASPX и веб-службы ASMX. В результате WCF ведет себя идентично ASMX в отношении следующих функций ASP.NET:

* HttpContext: WCF services running in ASP.NET Compatibility Mode can access Current and its associated state.

* File-based authorization: WCF services running in ASP.NET compatibility mode can be secure by attaching file system access control lists (ACLs) to the service’s .svc file.

* Configurable URL authorization: ASP.NET’s URL authorization rules are enforced for WCF requests when the WCF service is running in ASP.NET Compatibility Mode.

* HttpModuleCollection extensibility: Because WCF services running in ASP.NET Compatibility Mode participate fully in the ASP.NET HTTP request lifecycle, any HTTP module configured in the HTTP pipeline is able to operate on WCF requests both before and after service invocation.

* ASP.NET Impersonation: WCF services run using the current identity of the ASP.NET impersonated thread, which may be different than the IIS process identity if ASP.NET impersonation has been enabled for the application. If ASP.NET impersonation and WCF impersonation are both enabled for a particular service operation, the service implementation ultimately runs using the identity obtained from WCF.
0 голосов
/ 15 января 2010

Я не знаком с этим атрибутом, но этот документ гласит:

ImpersonationOption - это перечисление из трех значений, аналогичное AspNetCompatibilityRequirementsMode: NotAllowed, Allowed и Required. Значением по умолчанию является NotAllowed. Если это разрешено, вы можете включить олицетворение на уровне обслуживания из следующего флага конфигурации «impersonateCallerForAllOperations»:

<behavior name="MyImp">
    <serviceAuthorization impersonateCallerForAllOperations="false"/>
</behavior>
There are two cases when a service operation is enabled for WCF impersonation:
* The operation has OperationBehavior.Impersonation set to “Required”.
* The operation has OperationBehavior.Impersonation set to “Allowed” and the 
  flag “impersonatedCallerForAllOperations” is set to true.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...