为什么Web用户通过NTLM进行身份验证?

时间:2012-10-09 18:38:39

标签: c# asp.net .net visual-studio-2010

我正在使用表单身份验证并从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如何?

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

如果我没有弄错的话,当您使用VS及其开发服务器进行调试时,您会看到yourselfUser(正在验证)运行Visual Studio(在您的用户上下文中)。

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

它不应该影响您对Web窗体/窗体身份验证的调试。成功进行表单身份验证登录后,您可以获取“表单身份验证用户”(网络用户)的HttpContext.User.Identity.Name