繁体   English   中英

IIS Express自动为我的项目禁用匿名身份验证,为什么?

[英]IIS Express is automatically disabling anonymous authentication for my project, why?

当我将我的ASP.NET MVC项目从Cassini Web服务器切换到IIS Express时,这将添加到我的applicationhost.config文件中:

<location path="MyProject">
    <system.webServer>
        <security>
            <authentication>
                <anonymousAuthentication enabled="false" />
                <windowsAuthentication enabled="false" />
            </authentication>
        </security>
    </system.webServer>
</location>

这导致该站点无法加载401.2-未经授权,并且我无法在Web.config级别上对其进行修复-然后它将抱怨该部分被锁定在父级别(HTTP 500.19)。

我可以通过修改applicationhost.config文件来修复它,但是当不为原始ASP.NET MVC项目添加此类部分时,我不明白为什么要这样做。 有什么事吗

我正在使用VS 11 beta,但也确认了2010 SP1中的这种奇怪行为。 IIS Express表示它是7.5版。

因为某种原因,这在我的csproj文件中:

<IISExpressAnonymousAuthentication>disabled</IISExpressAnonymousAuthentication>

将其设置为enabled可解决该问题(也可以从Visual Studio中完成,选择项目,F4,然后在属性网格中将“ 匿名身份验证”设置为Enabled )。

请在按F4之前右键单击该项目并选择使用iis express。

有时以前,我面临着同样的困难,但是与我在这里看到的并没有什么不同。 在我的笔记本电脑中,我同时拥有VS 08和VS 13,以及SQL Server 2008 R2和11G XE。 对于连接到R2的网站来说从来没有问题,但是当我尝试使用具有asp.net的oracle成员身份建立网站时,我发现页面打开,但是具有角色的文件夹下的页面没有打开,并且给了我拒绝访问的错误。 尽管该文件夹内部具有适当的web.config,并且用户创建的角色相同,但仍引发相同的错误。 最后,我意识到我需要身份验证机制,因此我在web.config的system.web中添加了以下代码:

<authentication mode="Forms">
<forms loginUrl="Login.aspx" protection="All" slidingExpiration="true"
timeout="90" />
</authentication>
<authorization>
<deny users="?" />
</authorization>
<identity impersonate="false"/>
<trace
enabled="false"
requestLimit="10"
pageOutput="false"
traceMode="SortByTime"
localOnly="true"
/>

它确实起作用了,现在我经过身份验证的用户可以登录到指定的文件夹了! 我希望这可以帮助遇到类似我的问题的人。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM