Asp.net mvc 如何限制对组的访问并以用户身份执行代码?

Asp.net mvc 如何限制对组的访问并以用户身份执行代码?,asp.net-mvc,iis,Asp.net Mvc,Iis,应用程序: 运行在IIS 8.5/Windows Server 2012R2上的MVC网站 要求: 限制对某些用户组的访问 作为发送请求的用户执行代码,即查询数据库、访问文件等。 迄今采取的步骤: Web.config IIS>站点>$TheSiteName$>身份验证>禁用除Windows之外的所有 IIS>站点>$TheSiteName$>授权规则>允许所有 Active Directory>$TheServerName$>委派>信任此计算机仅委派给任何Kerberos服务 结果 IIS抱怨

应用程序:

运行在IIS 8.5/Windows Server 2012R2上的MVC网站

要求:

限制对某些用户组的访问 作为发送请求的用户执行代码,即查询数据库、访问文件等。 迄今采取的步骤:

Web.config IIS>站点>$TheSiteName$>身份验证>禁用除Windows之外的所有 IIS>站点>$TheSiteName$>授权规则>允许所有 Active Directory>$TheServerName$>委派>信任此计算机仅委派给任何Kerberos服务 结果

IIS抱怨在集成管道模式下无法进行模拟 当我将管道模式更改为classic时,会弹出一个身份验证对话框,但似乎无法验证我的凭据。 你知道我会忘记做什么吗?为什么我不能访问此网站


一旦我开始,我将不得不处理好限制。虽然我是胡乱猜测,但我认为可以将受限制的组添加到授权规则中,但我无法对其进行测试……这是正确/最好的方法吗?

应用程序池以什么身份运行。当我像您一样保护文件夹时,我经常忘记,如果池设置为ApplicationPoolIdentity,则需要文件夹上的IIS用户组。否则,文件系统的初始接触将由无权访问该文件夹的帐户完成。ApplicationPoolIdentity是应用程序池的用户,IIS_IUSRS可以完全访问文件所在的目录。请将filemon加载到服务器上,然后在收到请求时观察拒绝访问的情况。您还应该在任务管理器中看到正在模拟运行w3wp进程的用户加载的进程。 <system.web> <identity impersonate="true" /> <authentication mode="Windows" /> <compilation targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web> <system.webServer> <modules> <remove name="FormsAuthentication" /> </modules> </system.webServer>