2011-03-29 40 views
0

我使用ASP.NET MVC 3,我試圖做一些事情,應該是真的直線前進......角色的認證工作在web.config中使用的授權屬性,但不是通過授權

我的應用程序使用Forms身份驗證和這對控制器/操作來說是完美的。例如,如果我裝飾要麼控制器或與管理員組的成員只有下面的屬性的動作可以查看它們:

[Authorize(Roles="Administrators")] 

但是我有下的默認腳本文件夾文件夾中稱爲管理員。我只希望Administrators組的成員才能夠在這個目錄中訪問的腳本,所以我創建的目錄裏面以下新的web.config:

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
    <authorization> 
     <allow roles="Administrators"/> 
     <deny users="*"/> 
    </authorization> 
    </system.web> 
</configuration> 

但是無論用戶是其成員管理員組或他們沒有收到302 Found消息,然後重定向到登錄頁面。

如果我將web.config更改爲allow user="*",那麼它可以工作。如果我爲正在測試的特定用戶添加allow users="Username",它也可以工作。

關於我要去哪裏的錯誤或我可以開始調查的任何想法?

回答

0

你有RoleManager添加到您的web.config 默認Scripts文件夾 東西如下

system.web> 
    <authentication mode="Forms" > 
     <forms loginUrl="login.aspx" 
     name=".ASPXFORMSAUTH" /> 
    </authentication> 

    <roleManager defaultProvider="SqlProvider" 
    enabled="true" 
    cacheRolesInCookie="true" 
    cookieName=".ASPROLES" 
    cookieTimeout="30" 
    cookiePath="/" 
    cookieRequireSSL="false" 
    cookieSlidingExpiration="true" 
    cookieProtection="All" > 
    <providers> 
     <add 
     name="SqlProvider" 
     type="System.Web.Security.SqlRoleProvider" 
     connectionStringName="SqlServices" 
     applicationName="SampleApplication" /> 
     </providers> 
    </roleManager> 
    </system.web> 
+0

你werespot上,謝謝!我知道這將是簡單的東西:) – MarkB29 2011-03-30 15:15:47