我正在使用表单身份验证并从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如何?
答案 0 :(得分:2)
据我所知,cassini不支持Windows身份验证。
它作为本地系统帐户运行,这就是您所看到的NTLM身份验证。
如果您正在为Asp.Net应用程序(或WCF)开发/调试安全功能,我强烈建议您部署到IIS。
答案 1 :(得分:1)
如果我没有弄错的话,当您使用VS及其开发服务器进行调试时,您会看到yourself
是User
(正在验证)运行Visual Studio(在您的用户上下文中)。
Visual Studio在您的上下文中运行(您的Windows用户帐户/权限等) - Request.LogonUserIdentity.User
它不应该影响您对Web窗体/窗体身份验证的调试。成功进行表单身份验证登录后,您可以获取“表单身份验证用户”(网络用户)的HttpContext.User.Identity.Name
。