我们有一个使用 MVC3 和实体框架的简单 Intranet 站点。一切正常,可以在 Visual Studio 中进行调试。当我将站点发布到本地盒子 IIS7.5 Web 服务器或同一域上的开发盒子时,系统会提示我输入用户名和密码,但它不会连接到该站点。它只是返回 401.1 错误并奇怪地显示
Logon Method Not yet determined
Logon User Not yet determined
我已验证 Windows 身份验证已启用且匿名身份验证已禁用。该应用程序正在使用 applicationPoolIdentity,但我已经尝试使用网络服务,没有任何区别。网络配置包括
<authentication mode="Windows" />
我已经尝试过使用和不使用授权部分。
<authorization>
<allow users="*" />
</authorization>
我在网上发现的唯一另一件事涉及更改注册表项,但这最终将在生产服务器上进行,因此我不愿意为此进行注册表更改。
使用此代码块在本地运行会返回所有预期信息
<div id="title">
<h4> Environment.UserName: @Environment.UserName
@DateTime.Now.Millisecond.ToString() </h4>
@foreach (var role in Roles.GetRolesForUser())
{
role.ToString(); <br />
}
</div>
<div id="logindisplay">
Context.User.Identity.Name <strong>@Context.User.Identity.Name</strong>!<br />
@Environment.UserDomainName
</div>
它是一个 MVC3 Web 应用程序。 IIS 身份验证开关是
Anonymous Authentication Disabled
ASP.NET Impersonation Disabled
Forms Authentication Disabled
Windows Authentication Enabled
我还缺少其他想法或东西吗?
MSDN 上的这篇文章说明了如何设置 IIS 7 MVC3 Intranet 网站:http://msdn.microsoft.com/en-us/library/gg703322(VS.98).aspx http://msdn.microsoft.com/en-us/library/gg703322(VS.98).aspx
与您相关的有趣的部分很可能是关于模仿的最后一节。如果您以 Windows 身份验证运行站点,但关闭了模拟,您将使用经过身份验证的身份读取/执行网站的文件。这意味着每个想要访问该站点的用户都需要文件夹/文件权限。
为了避免这种情况,请使用 Windows 身份验证允许用户进行身份验证,但使用模拟来使用单一身份来访问文件夹/文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)