У меня есть сервисный проект WCF, в котором я реализовал пользовательскую базовую аутентификацию, следуя рекомендациям здесь , и все работает отлично!Однако я не могу найти способ запретить доступ неаутентифицированных пользователей только к определенным конечным точкам.
В моем проекте у меня есть около 5 конечных точек, и я хочу, чтобы пользователи проходили аутентификацию только на нескольких из них.Остальные, к которым я хочу разрешить анонимный доступ.
Мой web.config (фрагмент) таков:
<system.web>
<customErrors mode="Off"/>
<authentication mode="None"/>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</assemblies>
</compilation>
<httpModules>
<add name="CustomBasicAuthentication" type="WebServices.Auth.CustomBasicAuthenticationModule, WebServices"/>
</httpModules>
<authorization>
<deny users="?"/>
</authorization>
<membership defaultProvider="defaultProvider">
<providers>
<add name="defaultProvider" type="WebServices.Auth.WSMembershipProvider, WebServices"/>
</providers>
</membership>
</system.web>
Конечные точки довольно просты:
<service name="WebServices.Distance" behaviorConfiguration="defaultBehavior">
<endpoint address="" binding="webHttpBinding" bindingConfiguration="defaultBinding" contract="WebServices.IDistance" behaviorConfiguration="rest" />
</service>
.... more endpoints below here ....
Таким образом, вместо того, чтобы задавать все конечные точки, могу ли я отказать неаутентифицированным пользователям в конечной точке № 1 (или по имени, или как угодно).
Надеюсь, в этом есть какой-то смысл.Если нет, то не стесняйтесь.:)