我正在使用库存MS Forms身份验证和SqlRolesProvider在IIS7(服务器'08)上运行ASP.NET 3.5应用程序。 (我使用aspnet_regsql工具来生成表格)。ASP.NET 3.5 IIS7角色安全实施
我们有三个角色:SysAdmins,AppAdmins和Users。所有用户都在用户中,并且用户可以在SysAdmins,AppAdmins或两者中。
我似乎无法得到一个管理员目录来阻止访问不在SysAdmins和AppAdmins中的用户。它可以允许所有登录用户或无人登录。
这里是我当前的配置中的相关内容:
<configuration>
...
<system.web>
<authentication mode="Forms">
<forms loginUrl="/client/security/login.aspx" timeout="480" />
</authentication>
<authorization>
</authorization>
<roleManager defaultProvider="SqlRoleProvider" enabled="true" cacheRolesInCookie="true" cookieName="EquityTouch.Roles" cookieProtection="All" cookieSlidingExpiration="true" cookieTimeout="60">
<providers>
<clear />
<add name="SqlRoleProvider" applicationName="EquityTouch" connectionStringName="SQLProvider" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</providers>
</roleManager>
...
</system.web>
<system.webServer>
<security>
<authorization>
<add accessType="Deny" users="?" />
</authorization>
</security>
...
</system.webServer>
<location path="admin">
<system.webServer>
<security>
<authorization>
<remove users="*" roles="" verbs=""/>
<add accessType="Allow" roles="SysAdmins,AppAdmins" />
</authorization>
</security>
</system.webServer>
<system.web>
<authorization>
<deny users="*"/>
<allow roles="SysAdmins,AppAdmins"/>
</authorization>
</system.web>
</location>
</configuration>
我相信这个配置目前大家块。我做了类似的配置,阻止任何人。
我怀疑问题在于同时使用system.web和system.webserver部分。任何帮助获取此配置正常工作将不胜感激。
UPDATE
从<位置>要素,使该文件夹中的.aspx页面返回正确拆卸<system.webServer>节!不幸的是,该文件夹中的.js文件仍然被所有用户阻止。理想情况下,我想锁定.js文件以及无特殊要求的眼睛。所以我仍在寻求帮助。
这是同一个问题:http://stackoverflow.com/questions/991045/asp-net-authentication-with-roles-in-iis7-integrated-mode-for-static-content – Toby 2009-09-22 19:29:03