|
VB.NET • Authenticate and Initialize Listing 2. The Login routine authenticates the ADAM user, extracts the SID, and uses it to initialize the Authorization Manager client context.
Public Shared Function Login(ByVal p_Name As String, ByVal _
p_PWD As String) As AdamPrincipal
Try
Dim l_entry As New DirectoryEntry( _
"LDAP://" + "localhost" + ":" + _
"1389" + "/" + "DC=MyApp,DC=SABBASOFT,DC=COM", _
pf_makeFullDN(p_Name), p_PWD, _
AuthenticationTypes.None)
Dim mySearcher As New DirectorySearcher(l_entry)
mySearcher.Filter = ("(&(objectClass=user)( _
name=" + p_Name + "))")
Dim l_s As SearchResult = mySearcher.FindOne
If l_s Is Nothing Then Throw New Exception( _
"Critical Error, Couldn't find logged user")
Dim SID As Byte() = _
l_s.Properties.Item("objectSID").Item(0)
Dim sSID As String
Dim sidPtr As IntPtr = Marshal.AllocHGlobal(SID.Length)
Marshal.Copy(SID, 0, sidPtr, SID.Length)
ConvertSidToStringSid(CType(sidPtr, IntPtr), sSID)
Dim l_IAzClientContext As IAzClientContext = _
m_app.InitializeClientContextFromStringSid(sSID, _
tagAZ_PROP_CONSTANTS.AZ_CLIENT_CONTEXT_SKIP_GROUP)
Catch ex As Exception
Throw (New Exception("Login Failed"))
End Try
End Function
|