我正在使用IIS Express来部署MVC4应用程序 . 该网站在同一台计算机上运行完美 . 但在Lan,它给了我错误401 .
<authentication mode="Forms">
<forms loginUrl="~/" slidingExpiration="true" timeout="20">
</forms>
</authentication>
在家庭控制器
[HttpPost]
[AllowAnonymous]
public ActionResult Index(LoginModel model, string returnUrl)
{
}
我在管理员模式下从命令提示符启动IIS服务器 . IIS以错误 401
响应请求 .
任何线索?
10 回答
我意识到这是一个较旧的帖子,但我在IIS 8.5上有同样的错误 . 希望这可以帮助另一个人遇到同样的问题(我没有看到我的问题在其他类似 Headers 的问题中列出) .
似乎使用应用程序池标识正确设置了所有内容,但我仍然收到错误 . 经过大量挖掘后,匿名用户可以使用应用程序池标识或特定用户的凭据进行设置 . 无论出于何种原因,我的默认用户都是默认用户 . 将设置更改为App Pool Identity可以解决我的问题 .
IIS管理器→站点→网站
双击"Authentication"
选择匿名身份验证
从“动作”面板中,选择“编辑”
选择应用程序池标识,然后单击确定
希望这能节省别人一些时间!
如果您使用的是IIS 7,请执行以下操作:
选择您的网站 .
单击错误页面 .
编辑功能设置 .
选择详细错误 .
请享用 .
确保您在iis上启用了匿名身份验证,如下所示:
如果有人还在寻找这个,这解决了我们的问题:
对于这可能有所帮助的人来说,这拯救了我的生命......
IIS 7很难弄清楚为什么我得到401 - 未经授权:由于凭证无效而拒绝访问......直到我这样做...
打开IIS并选择导致401的网站
打开"IIS" Headers 下的"Authentication"属性
单击"Windows Authentication"项目,然后单击"Providers"
对我来说,问题是谈判高于NTLM . 我假设在幕后发生了某种握手,但我从未真正认证过 . 我把NTLM移到了最顶端的位置,并修复了它的BAM .
Here is the link where this was found .
我意识到这是一个古老的问题,但这在我的搜索中出现了 . 对于最近构建的MVC应用程序有一个类似的问题,第一次部署,并且身份验证机制没有完全消失 .
在我的情况下,它不是IIS设置,它是一个不是
[AllowAnonymous]
装饰的控制器 . 我在Layout.cshtml中使用了Render.Action / Html.Action,用户未经身份验证 . 因此,布局尝试在UnAuthenticated上下文中加载经过身份验证的操作 .一旦我将操作更新为AllowAnonymous,问题就消失了,this is what led me to it .
希望这有助于某人 .
我今天遇到了类似的问题 . 出于某种原因,我的 GET 请求很好,但 PUT 请求失败了我的 WCF WebHttp Service
将以下内容添加到Web.config解决了该问题
当我使用MVC文件夹创建一个空项目然后将应用程序部署到服务器时,我遇到了这个错误 . 我的问题是我没有在
Web.config
中定义身份验证,所以我所要做的就是将此行添加到system.web
标记中 .我遇到了类似的问题 .
该文件夹已共享,并提供了Authenticated Users权限,这解决了我的问题 .
我在IIS 8.5下遇到了同样的问题 . 我的工作解决方案是更改IIS以显示详细的错误 . 请参阅sna2stha的回答 . 但我认为将详细的错误消息转发给 生产环境 环境中的浏览器并不是一个好主意 . 我添加/更改了httpErrors-Section中的existingResponse属性,因此IIS没有处理任何延长的Asp.net响应:
这适合我 .
就我而言,
我的应用程序是在
MVC
中开发的,我的家庭控制器类是用[Authorize]
装饰的,这导致了这个问题 .所以我've removed it because my application don' t需要任何身份验证 .