Solved

Get User WINNT Logon Name?

Posted on 2004-04-23
12
334 Views
Last Modified: 2010-04-11
I am writing an Intranet app and need to get the user WINNT login name to allow access to the application.  I am using ASP.NET to write the app.  How do I capture the users WINNT logon name?
Thus far I have the following and it is not working:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Put user code to initialize the page here

        Dim authUserName As String
        Dim aspUserName As String
        authUserName = User.Identity.Name
        aspUserName = Principal.WindowsIdentity.GetCurrent.Name
        Dim userNameOnly As String = authUserName
        userNameOnly = userNameOnly.Replace("XXXX9999\", "")

       
         If authUserName = "XXXX9999\ABC" Then
            ///*** Allow user to view page****\\\
        Else
            ///*** Display message not allowed to view page****\\\
           
        End If

    End Sub
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Thank you.

LadyGail
0
Comment
Question by:LadyGail
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
  • 2
  • +1
12 Comments
 
LVL 5

Expert Comment

by:bitter_chicken
ID: 10901298
Hey ladygail
I've used this code before, but it is VB6 - I have absolutely NO IDEA of the differences between VB6  <> VB.NET so I'll post it here unchanged, hope it helps.

----------------------------------------------------------------------------------------------

Option Explicit
'*******************************************************************
'* Project Location = C:\PROJECTX
'* This code is copyright (c), 1999 Andrea VB Programming News Group
'*******************************************************************
'************** API's
' Used to Get the logged on User Name - see GetPCUser Function
Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

'**********************
'* Public Variables etc
Public FileName As String   '* Hold the loaded project name
'* You can use an array but I found it better in this case to use the collection
Public LineHold1 As New Collection   '* collections to hold parsed information from .vbp file
Public LineHold2 As New Collection
'* Microsoft Word Object - Use Project on the menu then select
'* References then select Microsoft Office 9.0 Objects I have Office 2000
'* for Word 97 use 8.0 objects

Public Function GetPCUser() As String
Dim szBuffer As String, lBuffSize As Long, RetVal As Boolean

'* Create the buffer
szBuffer = Space(255)

lBuffSize = Len(szBuffer)

RetVal = GetUserName(szBuffer, lBuffSize)
If RetVal Then
    '* Strip off the null character on the User name
    GetPCUser = Left$(szBuffer, InStr(szBuffer, vbNullChar) - 1)
   
Else
    '* nope nothing there??
     GetPCUser = "UnknownUser"
End If
End Function

0
 

Author Comment

by:LadyGail
ID: 10901471
Not really, it need the code to run in asp.net.
0
 
LVL 5

Expert Comment

by:bitter_chicken
ID: 10901629
oh well sorry

)-;

bc
0
Surfing Is Meant To Be Done Outdoors

Featuring its rugged IP67 compliant exterior and delivering broad, fast, and reliable Wi-Fi coverage, the AP322 is the ideal solution for the outdoors. Manage this AP with either a Firebox as a gateway controller, or with the Wi-Fi Cloud for an expanded set of management features

 
LVL 14

Expert Comment

by:JohnK813
ID: 10902189
Don't know if you can access environmental variables in ASP, but you can give this a shot:

Environ("USERNAME")

(also, sometimes the username may be listed under the "USER" or "UNAME" environmental variables)
0
 

Author Comment

by:LadyGail
ID: 10902324
Environ("USERNAME") writes--ASPNET to the browser.
0
 
LVL 14

Expert Comment

by:JohnK813
ID: 10902917
OK, that's probably because it's looking at the USERNAME on your server (and ASPNET is considered the user here), not the USERNAME of the computer accessing your page.

Hmmm... I don't know how to do this, sorry.  You may want to look into capturing the IP address or hostname, and converting that into a username (assuming each person has their own computer and only use that computer).

Another idea would be to use a cookie - the user enters their username once, and it's stored for future use.
0
 

Author Comment

by:LadyGail
ID: 10903038
Thank you.
I got it to work.
0
 
LVL 14

Expert Comment

by:JohnK813
ID: 10903069
May I ask how?  Using Environ()?
0
 

Author Comment

by:LadyGail
ID: 10903106
Initially, the code I posted was shared with me by a co-worker.
However, I was getting errors using his code as posted above.
At this suggestion I looked through ALL of the files in his project to determine which file would result in the script functioning properly. Thus I happened to the file(s) that made the above script work.  Which file, I don't know.
But it works.
0
 

Author Comment

by:LadyGail
ID: 12508789
My working solutions is listed:

            Dim authUserName As String
            Dim aspUserName As String
            authUserName = User.Identity.Name
            aspUserName = Principal.WindowsIdentity.GetCurrent.Name
            Dim userNameOnly As String = authUserName
            userNameOnly = userNameOnly.Replace("D0960001\", "")

            If Trim(userNameOnly) = Trim(DSPageData2.Tables("ViewUsers").Rows(0).Item("User1")) Then
                If Trim(userNameOnly) = Trim(DSPageData2.Tables("ViewUsers").Rows(0).Item("User2")) Then
                    If Trim(userNameOnly) = Trim(DSPageData2.Tables("ViewUsers").Rows(0).Item("User3")) Then
                        If Trim(userNameOnly) = Trim(DSPageData2.Tables("ViewUsers").Rows(0).Item("User4")) Then
                        Else
                            Response.Redirect("../ErrorMessage/UnauthorizedAccess.aspx")
                        End If
                    End If
            End If
        End If

Thank you.

LadyGail

0
 

Accepted Solution

by:
modulo earned 0 total points
ID: 12535560
Closed, 125 points refunded.

modulo
Community Support Moderator
Experts Exchange
0

Featured Post

Now Available: Firebox Cloud for AWS and FireboxV

Firebox Cloud brings the protection of WatchGuard’s leading Firebox UTM appliances to public cloud environments. It enables organizations to extend their security perimeter to protect business-critical assets in Amazon Web Services (AWS).

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

There's a lot of hype surrounding blockchain technology. Here's how it works and some of the novel ways it' s now being used - including for data protection.
Many old projects have bad code, but the budget doesn't exist to rewrite the codebase. You can update this code to be safer by introducing contemporary input validation, sanitation, and safer database queries.
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…

730 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question