Asp.net 文件夹中的web.config允许全部或不允许用户身份验证

Asp.net 文件夹中的web.config允许全部或不允许用户身份验证,asp.net,authentication,iis-7,web-config,location,Asp.net,Authentication,Iis 7,Web Config,Location,我有一个文件夹,里面有几个调查aspx页面。我必须在这些aspx页面上设置权限。有5个不同的页面,只有一个允许特定用户访问。我添加了一个web.config文件来允许和拒绝用户,但它不起作用。如果我允许我的用户名并添加一个deny=“?”我没有访问权限,但如果我添加了另一个用户,请删除我的用户名并删除deny选项,我将获得登录系统的权限。如果我去掉deny,我可以访问该页面,但是所有用户都可以访问该页面 在上添加我的用户凭据并拒绝我无法访问的所有匿名用户。有人能告诉我我做错了什么吗? 可能是因为

我有一个文件夹,里面有几个调查aspx页面。我必须在这些aspx页面上设置权限。有5个不同的页面,只有一个允许特定用户访问。我添加了一个web.config文件来允许和拒绝用户,但它不起作用。如果我允许我的用户名并添加一个
deny=“?”
我没有访问权限,但如果我添加了另一个用户,请删除我的用户名并删除deny选项,我将获得登录系统的权限。如果我去掉deny,我可以访问该页面,但是所有用户都可以访问该页面

在上添加我的用户凭据并拒绝我无法访问的所有匿名用户。有人能告诉我我做错了什么吗? 可能是因为它没有读取或获取我的windows登录凭据?我使用的是visual studio 2012,实体框架

这就是我所做的:

   //Web Config that allows and denies:
   <?xml version="1.0"?>
        <configuration>
        <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
     </system.web>

    <location path="QualityCheckSurvey.aspx">
    <system.web>
      <authorization>
        <allow users="DomainName\User2" />
        <deny users="?" /> 
      </authorization>
    </system.web>
    </location>
    </configuration>
//允许和拒绝的Web配置:
我已将身份验证模式设置为windows

编辑 似乎权限设置不正确。但它仍然不起作用。当我拒绝*,但允许用户1时,即使提示登录请求,用户也无法访问。登录窗口对话框只会不断弹出3次,即使用户有访问权限。让它否认?(匿名)允许每个人都有访问权限,即使我去掉了拒绝并且只有USER1的allow标签,其他用户仍然有访问权限。。。我现在在本地运行,但即使在IIS上使用(windows和基本身份验证)设置身份验证时,也会执行完全相同的操作

编辑 这是我正在使用的实际代码。此路径“”中只允许3个用户。此web.config文件位于survey文件夹中,包含5种不同类型的调查。只有这一项调查应该允许某些用户,其余的调查任何人都可以访问

     <?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <allow users="*"/>
    </authorization>
  </system.web>

  <location path="QualityCheckSurvey.aspx">
    <system.web>

      <authorization>
        <deny users="?" />
        <allow users="OEP\kevinh, OEP\shabierg, OEP\heilened" />
        <deny users="*" />
      </authorization>

    </system.web>
  </location> 

在应用程序根目录下的my main web.cofin中,我已将身份验证模式设置为windows:

     <authentication mode="Windows">

<!--<forms loginUrl="~/Account/Login.aspx" timeout="2880" />-->
    </authentication>


关于你的问题,你说你有一个文件夹名,但在web.config上,你只给出了路径上的文件名。使用foldername/filename.aspx,如下所示。使用deny users=“*”而不是deny users=“?”


编辑

看起来您在同一个应用程序中有多个web.config文件。为避免混淆,只需删除survey文件夹和根文件夹web.config上的文件,然后添加此代码

 <?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <authentication mode="Windows" />
    </authorization>
  </system.web>

  <location path="survey/QualityCheckSurvey.aspx">
    <system.web>
      <authorization>
        <allow users="OEP\kevinh, OEP\shabierg, OEP\heilened" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location> 

我假设调查文件夹位于根文件夹内。

如果在项目创建后将windows身份验证添加到项目中,则修复此错误 这真是太多了。当我将Windows身份验证添加到现有项目时,我遇到了这个问题。在它正常工作之前,我需要做几件关键的事情:

1.在解决方案资源管理器中,单击项目,然后按F4。这将打开项目属性。
2.在“项目属性”和“开发服务器”下,进行以下更改:
-匿名身份验证:已禁用
-Windows身份验证:已启用
3.在
下的
Web.config
中包括以下内容:


这对我来说很有用。如果我做错了什么,请告诉我。

希望这将有助于在创建项目后使用windows身份验证的未来个人。

您使用的是哪个版本的IIS?项目是否启用了windows身份验证?@CodeCaster,是的,我已检查它是否已启用……您的请求是否真的来自“DomainName\User2”"? 您可能需要调试项目,并确保Page.User是该ID(或Page.User.Identity.Name)。是的,domainname\User2正在工作。。。我已经编辑了IIS的applicationhost.config文件,它给了我一个弹出窗口,让我用我的凭据登录,但它仍然不允许我访问它。弹出窗口直到现在才出现……然后它就不会拾取aspx页面的路径。添加文件夹名称时出现的错误是:无法访问请求的页面,因为该页面的相关配置数据无效。配置错误位置路径包含无效字符配置文件\\?\C:\Users\PCName\Documents\Visual Studio 2012\WebSites\NCTonerPublic\NCTonerPublic\Surveys\web.Config您给出的路径是什么?只需在此处显示实际代码。。您应该只给出相对路径,而不是完整路径。web.config和QualityCheckSurvey.aspx是否在同一文件夹中?它仍然拒绝所有人访问。。。只是不断弹出windows身份验证屏幕。。。这是我在3描述之后得到的错误:访问服务此请求所需的资源时出错。服务器可能未配置为访问请求的URL。错误消息401.2.:未经授权:由于服务器配置原因,登录失败。根据您提供的凭据和Web服务器上启用的身份验证方法,验证您是否具有查看此目录或页面的权限。请与Web服务器的管理员联系以获取其他帮助在Web服务器上是否禁用了所有身份验证并启用windows身份验证?在顶部您说“domainname\User2正在工作”。在这里您说“它仍然拒绝所有人的访问”。哪种说法是正确的?如果它拒绝访问所有人,那么问题可能是服务器未加入域。它只是不断弹出windows身份验证,但拒绝所有用户,没有人获得访问权。。。。
<location path="foldername/QualityCheckSurvey.aspx">
    <system.web>
        <authorization>
            <allow users="DomainName\User2"/>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>
 <?xml version="1.0"?>
<configuration>
  <system.web>
    <authorization>
      <authentication mode="Windows" />
    </authorization>
  </system.web>

  <location path="survey/QualityCheckSurvey.aspx">
    <system.web>
      <authorization>
        <allow users="OEP\kevinh, OEP\shabierg, OEP\heilened" />
        <deny users="*" />
      </authorization>
    </system.web>
  </location> 
<authorization>
  <allow users="DOMAIN\user"/>
  <deny users="*"/>
</authorization>
<add key="owin:AutomaticAppStartup" value="false"/>