อยากรู้ว่า User ที่Login เข้ามา อยู่ในแผนกอะไร
โค้ดเป็นแบบนี้คะ ตามประสามือใหม่
Code (VB.NET)
Dim DomainAndUsername As String = ""
Dim strCommu As String
Dim flgLogin As Boolean = False
strCommu = "LDAP://" & ldapServer & "/" & ldapPath
DomainAndUsername = domainName & "\" & Login1.UserName.ToString
Dim entry As New DirectoryEntry(strCommu, DomainAndUsername, Login1.Password.ToString)
Dim obj As Object
Try
obj = entry.NativeObject
Dim search As New DirectorySearcher(entry)
Dim result As SearchResult
search.Filter = "(SAMAccountName=" + Login1.UserName.ToString + ")"
'search.PropertiesToLoad.Add("cn")
search.PropertiesToLoad.Add("memberOf")
'StringBuilder groupsList = new StringBuilder();
Dim groupsList As New StringBuilder()
result = search.FindOne()
If result Is Nothing Then
flgLogin = False
Else
flgLogin = True
Session("upd_by") = Login1.UserName
Session.Timeout = 3000
Response.Redirect("~/ImportCost.aspx")
End If
Tag : Ms SQL Server 2008, VBScript, VS 2010 (.NET 4.x), Windows
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.DirectoryServices
Imports System.DirectoryServices.AccountManagement
Namespace MyExtensions
Public NotInheritable Class AccountManagementExtensions
Private Sub New()
End Sub
<System.Runtime.CompilerServices.Extension> _
Public Shared Function GetProperty(principal As Principal, [property] As [String]) As [String]
Dim directoryEntry As DirectoryEntry = TryCast(principal.GetUnderlyingObject(), DirectoryEntry)
If directoryEntry.Properties.Contains([property]) Then
Return directoryEntry.Properties([property]).Value.ToString()
Else
Return [String].Empty
End If
End Function
<System.Runtime.CompilerServices.Extension> _
Public Shared Function GetCompany(principal As Principal) As [String]
Return principal.GetProperty("company")
End Function
<System.Runtime.CompilerServices.Extension> _
Public Shared Function GetDepartment(principal As Principal) As [String]
Return principal.GetProperty("department")
End Function
End Class
End Namespace
Dim RootDSE As New DirectoryServices.DirectoryEntry("LDAP://RootDSE")
Dim DomainDistinguishedName As String = RootDSE.Properties("DefaultNamingContext").Value
Dim ADEntry As New DirectoryServices.DirectoryEntry("LDAP://" & DomainDistinguishedName)
Dim ADSearch As New System.DirectoryServices.DirectorySearcher(ADEntry)
Dim ADSearchResult As System.DirectoryServices.SearchResult
ADSearch.Filter = ("(department=Dept Name)")
ADSearch.SearchScope = SearchScope.Subtree
ADSearch.PropertiesToLoad.Add("displayName")
For Each ADSearchResult In ADSearch.FindAll()
Console.WriteLine(ADSearchResult.GetDirectoryEntry().Properties.Item("displayName").Value)
Dim DomainAndUsername As String = ""
Dim strCommu As String
Dim flgLogin As Boolean = False
strCommu = "LDAP://" & ldapServer & "/" & ldapPath
DomainAndUsername = domainName & "\" & Login1.UserName.ToString
Dim entry As New DirectoryEntry(strCommu, DomainAndUsername, Login1.Password.ToString)
Dim obj As Object
Try
obj = entry.NativeObject
Dim search As New DirectorySearcher(entry)
Dim result As SearchResult
search.Filter = "(SAMAccountName=" + Login1.UserName.ToString + ")"
'search.PropertiesToLoad.Add("cn")
search.PropertiesToLoad.Add("memberOf")
search.PropertiesToLoad.Add("Department")
'StringBuilder groupsList = new StringBuilder();
Dim groupsList As New StringBuilder()
result = search.FindOne()
If result Is Nothing Then
flgLogin = False
Else
flgLogin = True
search.Properties("Department")(0).ToString()
Session("upd_by") = Login1.UserName
Session.Timeout = 3000
Response.Redirect("~/ImportCost.aspx")
End If