我正在使用庫存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