6

我正在使用表单身份验证并从 Visual Studio 2010 启动一个站点。它使用的是 Visual Studio 开发 (web) 服务器而不是 IIS。web.config 有:

<authenticaion mode="Forms">
  <forms name=".MyApp" protection="All" cookieless="UseCookies"/>
</authentication>

登录页面使用 ASP.NET 登录控件。在用户甚至登录之前,我可以看到以下内容:

HttpContext.Current.Request.LogonUserIdentity.AuthenticationType == "NTLM"
HttpContext.Current.User.Identity == System.Security.Principal.GenericIdentity
HttpContext.Current.User.Identity.AuthenticationType == "NTLM"

该用户似乎被认证为本地系统用户而不是 Web 用户。这是否意味着用户将始终通过身份验证,无论他们是否登录该站点?

网络用户 NTLM 怎么样?

4

2 回答 2

2

据我所知,cassini 不支持 Windows 身份验证。

它作为本地系统帐户运行,这就是您所看到的 NTLM 身份验证。

如果您正在为 Asp.Net 应用程序(或 WCF)开发/调试安全功能,我强烈建议您部署到 IIS。

于 2012-10-09T20:25:43.270 回答
1

如果我没记错的话,当您使用 VS 和它的开发服务器进行调试时,您会看到yourself正在User运行 Visual Studio(在您的用户上下文中)。

Visual Studio 在您的上下文中运行(您的 Windows 用户帐户/权限等) -Request.LogonUserIdentity.User

它不应该影响您对 Web 表单/表单身份验证的调试。Forms Auth登录成功后,即可获得HttpContext.User.Identity.Name“forms auth user”(web用户)。

于 2012-10-09T20:33:48.723 回答