Why does HttpContext.Current.User.Identity.Name return blank

∥☆過路亽.° 提交于 2019-11-30 08:27:17

问题


I created a site. It is an internal site. It is a .NET 4.0 site. I would like to grab the username using HttpContext.Current.User.Identity.Name of the person browsing the site. There isnt a login page since it is internal. I am not sure what I am missing. Do I need the following in my webconfig:

<authentication mode="Windows"></authentication>
<identity impersonate="true"/>
<authorization>
  <allow users="?"/>
</authorization>

and this:

  <system.webServer>
  <validation validateIntegratedModeConfiguration="false" />


回答1:


It comes up blank when unauthenticated. You can verify this by also doing:

HttpContext.Current.User.Identity.IsAuthenticated

Check your authentication level in IIS, is it set to enable windows authentication there too?




回答2:


In iis disable anonymous access and enable integrated windows security for you web application.




回答3:


Yes, you do need, at least the

<authentication mode="Windows"></authentication>

part is required if you are using Integrated Windows Auth.

After that, you should be able to grab the username of the person logged in.

No, you don't need:

<validation validateIntegratedModeConfiguration="false" />



回答4:


In IIS, go to Sites \ Default Website \ [Your Website].

Select Authentication option and disable Anonymous Authentication.




回答5:


In my case removing <remove name="FormsAuthentication" /> line from web.config helps.

I also have <authentication mode="Forms" /> in <system.web> section.



来源:https://stackoverflow.com/questions/7839567/why-does-httpcontext-current-user-identity-name-return-blank

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!