ASP.NET MVC 2使用Visual Studio 2010.通过web.config更改角色管理器

时间:2011-04-29 14:54:34

标签: asp.net-mvc

我已经实现了自己的自定义角色管理器对象。当我使用Visual Studio版本的IIS运行我的Web应用程序时,它工作正常。我可以看到用户名,我可以深入到我的角色管理器类中,看看它在做什么。当我使用IIS 7调试应用程序时,HttpContext.Current.User.Identity.Name为空,并且在确定用户具有的角色时不使用我的Role Manager类。我已经检查过我的所有dll都在bin目录中。

我猜测问题出现在IIS 7上。我需要在IIS 7上配置什么才能使其工作并使其使用我的角色管理器?

以下是设置角色管理器的web.config片段。

<membership>
  <providers>
    <clear />
  </providers>
</membership>
<roleManager defaultProvider="HyperionRoleProvider" enabled="true">
  <providers>
    <clear />
    <add name="HyperionRoleProvider" type="Census.BUD.Common.HyperionRoleProvider" applicationName="/" />
  </providers>
</roleManager>

1 个答案:

答案 0 :(得分:0)

自:

http://learn.iis.net/page.aspx/528/how-to-use-the-sample-read-only-xml-membership-and-role-providers-with-iis-70/

“这些示例非常适合与IIS 7.0一起用于演示或测试网站,但由于IIS 7.0的安全性设计方式,它们无法像IIS 7.0一样工作。原始说明允许您将示例成员资格/角色提供程序部署到Web站点的App_Code文件夹中,但IIS 7.0要求提供程序在部署之前在全局程序集缓存(GAC)中注册。考虑到这一点,以下步骤将引导您通过在开发系统上编译和部署只读XML提供程序。“

确保您的程序集在GAC中