Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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
C# ASP.NET MVC异常不工作_C#_Asp.net - Fatal编程技术网

C# ASP.NET MVC异常不工作

C# ASP.NET MVC异常不工作,c#,asp.net,C#,Asp.net,我在IIS中有ASP.NET MVC项目。匿名身份验证已禁用,ASP.NET模拟已启用,Windows身份验证已启用 在我的web.config中,我有以下内容: <authentication mode="Windows" /> <identity impersonate="true"> 我也试过了 <location path="HomeController/Index"> <system.web> <autho

我在IIS中有ASP.NET MVC项目。匿名身份验证已禁用,ASP.NET模拟已启用,Windows身份验证已启用

在我的web.config中,我有以下内容:

<authentication mode="Windows" />
<identity impersonate="true">
我也试过了

<location path="HomeController/Index">
    <system.web>
        <authorization>
            <allow users="*"/>
        </authorization>
    </system.web>
</location>

我仍然会被提示输入用户名和密码,我做错了什么?如何允许匿名用户转到主页/索引

我也尝试过:

<location path="Home/Index">
        <system.web>
            <authorization>
                <allow users="*"/>
            </authorization>
        </system.web>
    </location>


这不起作用。

您在配置文件中配置了错误的路径。约定是使用控制器名称,而不使用控制器的后缀。所以应该是这样的:

<location path="Home/Index">

您在配置文件中配置了错误的路径。约定是使用控制器名称,而不使用控制器的后缀。所以应该是这样的:

<location path="Home/Index">

在我使用ASP.NET MVC 5.x框架的项目中,
[AllowAnonymous]
属性似乎在我所有的控制器上都能工作(用
[Authorize]
属性修饰)除了
家庭控制器之外


最后,我将我的操作移动到另一个控制器,并使其以这种方式工作。

在我使用ASP.NET MVC 5.x框架的项目中,
[AllowAnonymous]
属性似乎在我所有的控制器上都能工作(用
[Authorize]
属性修饰)除了
HomeController


我最终将我的操作移动到另一个控制器,并使其以这种方式工作。

根据我的经验,AllowAnonymous根本无法与集成的windows身份验证一起工作。IIS正在强制身份验证在它到达您的MVC代码(即允许匿名访问)之前进行。因此必须允许IIS中的匿名才能使其工作?是的,此时集成windows身份验证不起作用。在我看来,有几个选项是将站点的匿名部分作为不同的网站(可能是一个虚拟应用程序)托管,或者切换到使用表单身份验证,手动获取提交的用户名/密码,并根据AD自己验证它们。后者意味着您将丢失无密码身份验证。根据我的经验,AllowAnonymous无法与集成的windows身份验证一起使用。IIS正在强制身份验证在它到达您的MVC代码(即允许匿名访问)之前进行。因此必须允许IIS中的匿名才能使其工作?是的,此时集成windows身份验证不起作用。在我看来,有几个选项是将站点的匿名部分作为不同的网站(可能是一个虚拟应用程序)托管,或者切换到使用表单身份验证,手动获取提交的用户名/密码,并根据AD自己验证它们。后者意味着您将丢失无密码身份验证。