经过深度Google搜索后,我找不到任何解决方法或解决问题的方法,所以请在这里问一下。 在web.config的第一部分
......
<location path="DevReg.aspx">
<system.web>
<authorization>
<allow roles="C,csvImportExport"/>
<deny users="*,?"/>
</authorization>
</system.web>
</location>
.......
<system.web>
<roleManager enabled="true" defaultProvider="MyRoleProvider">
<providers>
<clear />
<add name="MyRoleProvider" type="DataAccess.Common.MyRoleProvider, DataAccess" applicationName="myapp" />
</providers>
</roleManager>
</system.web>
.......
主WebApp在同一解决方案中的其他项目中。 当我在Visual Studio提供程序中运行app时,必须运行精细授权工作,我也可以从代码中调用我的提供程序(例如IsUserInRole返回正确的结果)。但在部署到本地IIS(Win 7 / IIS 7.5)之后。我尝试使用VirtualDirectory和WebApp没有运气。
当我在IIS中运行的应用程序看起来像服务器从不使用角色提供程序时,只在启动时调用Initialize方法,而在更新时调用更新。
请给我正确的方向来解决这个问题,如果需要,我会显示更多细节。
答案 0 :(得分:0)
创建新的Application Pool
,Managed Pipeline Mode
设置为Integrated
。将Identity
值设置为NetworkService
。在此之后,将新创建的Application Pool
设置为网站的Application Pool
。
答案 1 :(得分:0)
改变观点后我发现了问题。在项目中,我们还使用了一个丑陋的HttpHandler和一行Context.SkipAuthorization = true;
来解决我的麻烦。