4

I want to get the username of the logon username and domain. My code for getting it, is in a controller:

User.Identity.GetUserId()

In my web.config is:

<system.web>
    <identity impersonate="false"/>
    <authentication mode="Windows" />
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime />
    <pages controlRenderingCompatibilityVersion="4.0" />
</system.web>

Currently, I only get a empty string. What I have to change to get the Windows username information?

Sidenote for others: While my research, I also got to the following:

Environment.UserDomainName +  @"\" + Environment.UserName

In reference to this, it only delivers the identity in which the thread is running and not the windows information.

EDIT1: I'm currently testing my program in debugging mode.

2 Answers 2

3

try this

HttpContext.User.Identity.Name

also make sure you have authorization tag in your system.web in web.config as

<authorization>
  <allow users="?" />
</authorization>

and in IIS make sure that you will disable annonymous authentication and enable windows for the same app as

enter image description here

Sign up to request clarification or add additional context in comments.

3 Comments

also returns an empty string
This get me another error: "HTTP Error 404.15 - The request filtering module is configured to deny a request where the query string is too long."
The authorization setting is just to deny the anonymous user. it should not cause any kind of issue.Please see this link stackoverflow.com/questions/11636386/… Also make sure you don't have [AllowAnonymous] attribute on any action stackoverflow.com/questions/28483745/…
0

User.Identity.GetUserId() is an extension method from Microsoft.AspNet.Identity. Identity is incompatible with Windows Auth (you have to use one or the other), so I'm not sure what you're actually doing here.

Generally speaking, in Windows Auth, the value of User.Identity.Name will be in the form of {DOMAIN}\{USER}. So if you wanted the domain and/or username, you can split that string on \ and take the part you're after.

When it comes to Identity, User.Identity.Name should be the value of ApplicationUser.UserName, but depending on the setup, it might be ApplicationUser.Email.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.