Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 使用Visual Studio 2010的ASP.NET MVC 2。通过web.config更改角色管理器_Asp.net Mvc - Fatal编程技术网

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

Asp.net mvc 使用Visual Studio 2010的ASP.NET MVC 2。通过web.config更改角色管理器,asp.net-mvc,Asp.net Mvc,我已经实现了自己的自定义角色管理器对象。当我使用visualstudio版本的IIS运行web应用程序时,它工作正常。我可以看到用户名,我可以深入到我的角色管理器类,看看它在做什么。当我使用IIS 7调试应用程序时,HttpContext.Current.User.Identity.Name为空,并且在确定我的用户具有哪些角色时,它不使用我的角色管理器类。我已检查所有DLL是否都在bin目录中 我猜问题出在IIS 7上。我需要在IIS 7上配置什么才能使其工作并使用我的角色管理器 下面是设置角色

我已经实现了自己的自定义角色管理器对象。当我使用visualstudio版本的IIS运行web应用程序时,它工作正常。我可以看到用户名,我可以深入到我的角色管理器类,看看它在做什么。当我使用IIS 7调试应用程序时,HttpContext.Current.User.Identity.Name为空,并且在确定我的用户具有哪些角色时,它不使用我的角色管理器类。我已检查所有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>

来自:

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


确保您的程序集位于GAC中

我现在遇到的问题是,我使用的是windows 2008,并且我根据文章编译的程序集是ok的,但是我在c:\windows\assembly目录中没有看到我的程序集。windows Server 2008是否对这些程序集执行其他操作?您需要获取角色提供程序所在的程序集(我会将该提供程序代码分离到一个单独的库中),然后将其拖放到c:\windows\assembly(单击开始,运行,然后以最简单的方式输入c:\windows\assembly)。为了将其放入GAC,您还必须确保您的库也已签名,您可以在项目属性上执行此操作。然后,您至少可以轻松地对其进行测试-您的gacutil命令可能失败(尽管在编译项目时您应该看到这一点)