我创建了一个网站。这是一个内部网站。它是一个.NET 4.0站点。我想使用浏览网站的人的HttpContext.Current.User.Identity.Name来获取用户名。没有登录页面,因为它是内部的。我不确定我错过了什么。我的webconfig中是否需要以下内容:
<authentication mode="Windows"></authentication>
<identity impersonate="true"/>
<authorization>
<allow users="?"/>
</authorization>
和此:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
答案 0 :(得分:15)
未经身份验证时出现空白。您也可以通过以下方式验证这一点:
HttpContext.Current.User.Identity.IsAuthenticated
检查IIS中的身份验证级别,是否设置为启用Windows身份验证?
答案 1 :(得分:9)
在iis中禁用匿名访问并为您的Web应用程序启用集成的Windows安全性。
答案 2 :(得分:4)
是的,你确实需要,至少
<authentication mode="Windows"></authentication>
如果您使用集成Windows身份验证,则需要部分。
之后,您应该能够获取登录用户的用户名。
不,你不需要:
<validation validateIntegratedModeConfiguration="false" />
答案 3 :(得分:2)
在IIS中,转到Sites \ Default Website \ [Your Website]。
选择身份验证选项并禁用匿名身份验证。
答案 4 :(得分:1)
在我的案例中,从<remove name="FormsAuthentication" />
帮助移除web.config
行。
我在<authentication mode="Forms" />
部分也有<system.web>
。