我有一個自定義角色提供程序與標準的asp網站地圖和菜單控件一起工作,啓用了安全性啓用,菜單項成功消失/重新出現,因爲我修改web.config如下:SecurityTrimming,自定義角色提供者和服務器500錯誤:(
<location path="x/y/z.aspx">
<system.web>
<authorization>
<allow roles="a, b, c" />
<deny users="*" />
</authorization>
</system.web>
</location>
但不幸的是,每當我訪問這樣一個頁面,我表現的十分基本的「500 - 內部服務器錯誤」
如果我刪除從配置上面的紋路,不會發生這樣的錯誤(但每個人都可以訪問該頁面!)
這可以做我的自定義角色提供者嗎?它似乎與其他一切工作!我只重寫了IsUserInRole和GetRolesForUser函數(所有其他必需的函數,我什麼都不返回或空數組等)。
謝謝! :)
編輯:
我敢肯定這是不是我的自定義roleprovider導致錯誤..我有在我的web.config別處以下。
<location path="." inheritInChildApplications="false">
我的配置的大部分是在本節中舉行的想法是,我所有的appSettings,的sessionState,身份驗證選項等將不會繼承到其他應用程序,在IIS中設置但被子文件夾中舉行我現在正在開發的應用程序。也許這個'位置'內部有些部分沒有被轉移到其他「位置」(儘管它們不是兒童應用程序..!),令人困惑的是securityTrimming確實有效......無論如何,移動內容在該部分之外的上述「位置」,一切都再次起作用!有兩種世界的最好方法嗎?
我編輯了更多的信息..我相信它不再是一個特別的角色提供者/修剪問題..不知道是否要完全重新編輯,發佈一個新問題,或保持現狀。感謝所有的幫助。 –