2015-04-29 6 views
0

Может кто-нибудь рассказать мне, почему мои правила авторизации подкаталога IIS не работают?Правила авторизации IIS7 с неавторизованным поставщиком роли не работают

Я подозреваю, что это связано с использованием специального поставщика членства и роли.
Все пользователи, анонимные И пользователи, которые вошли в систему, получают ошибку 401.2 Unauthorized для всех файлов в подкаталоге /users.

Я пытаюсь ограничить доступ к статическим файлам и страницам asp.net в подкаталоге. Я использовал кнопку «Правила авторизации» в диспетчере IIS7.

В /users он создал web.config файл с помощью этого раздела:

<system.webServer> 
<security> 
<authorization> 
<remove users="*" roles="" verbs="" /> 
<add accessType="Deny" users="?" /> 
<add accessType="Allow" roles="auth_users" /> 
</authorization> 
</security> 
</system.webServer> 

В web.config корня сайта эти пользовательские роли и статус настройки. Поставщики членства и роли работают нормально - пользователь добавляется в роль, это только правила авторизации, которые не работают.

<roleManager enabled="true" defaultProvider="MyRoleProvider"> 
<providers> 
<remove name="AspNetSqlRoleProvider" /> 
<add name="MyRoleProvider" type="System.Web.Security.SqlRoleProvider" applicationName="MyUsersApp" /> 
</providers> 
</roleManager> 
<membership defaultProvider="MyMembershipProvider"> 
<providers> 
<remove name="AspNetSqlMembershipProvider" /> 
<add name="MyMembershipProvider" type="System.Web.Security.SqlMembershipProvider" applicationName="MyUsersApp" /> 
</providers> 
</membership> 
+0

Попробуйте этот конфиг: <конфигурация> <разрешение> <разрешить ролей = "auth_users" />< запретить пользователям = "?" /> Kami

+0

Привет, Просто попробовал эту конфигурацию в подкаталоге, но теперь со статическим файлом site.com/users/test.jpg анонимных пользователей и вошедших в систему пользователей можно просмотреть файл , –

+0

В IIS отключить анонимную аутентификацию для папки пользователя. – Kami

ответ

0

Все еще играя с этим, это выглядит многообещающе .. но я думаю, что там, вероятно, есть более элегантное решение.

<location path="users"> 
<system.web> 
<authorization> 
<allow roles="auth_users" /> 
<deny users="*" /> 
</authorization> 
</system.web> 
<system.webServer> 
<handlers> 
<add name="HTML" path="*.html" verb="GET, HEAD, POST, DEBUG" type="System.Web.StaticFileHandler" /> 
<add name="JS" path="*.js" verb="GET, HEAD, POST, DEBUG" type="System.Web.StaticFileHandler" /> 
<!--More static file types...--> 
</handlers> 
</system.webServer> 
</location>