LOGIN活动目录

王朝other·作者佚名  2006-01-08
宽屏版  字体: |||超大  

'*****************************************************************************************************

'//开始日期:2002年5月21日

'//结束日期:2002年5月

'*****************************************************************************************************

Option Explicit On

'Option Strict On

'//***************************************************************************************************

Imports System.Data.SqlClient

'//***************************************************************************************************

'//Begin defined namespace

'//Begin defined Class

Namespace Sunerp.CommClass.UserLogin

Public Class ActiveDsLogin

'//Defined Function LoginActiveDs

'//Function descriptoin

'//本函数以用户提供的证书验证用户,使用 LDAP 传输用户的证书,

'//使用 ActiveDs 对象的IADsOpenDSObject和 IADs 接口连接Active Directory,

'//使用参数ActiveDs.__MIDL___MIDL_itf_ads_0000_0018.ADS_SECURE_AUTHENTICATION

'//强制使用证书绑定用户。

'//本函数没有参数,用类ActiveDsLogin的属性ADserverName(主域控制器名),ADUserName(用户名),

'//ADUserPWD(用户密码),ADUserDeptVal(用户所在组织结构)传值

'//Begin define function LoginActiveDs

Public Function LoginActiveDs() As Boolean

' Opens an Active Directory object

' Using specific credentials.

'定义 LDAP 绑定字符串,调用函数ParseDomainName(DomainName)解析域名

Dim strLDAP As String

strLDAP = "LDAP://" & ExchangeServerName & "/" & _

"cn=" & AccountNameVal & ",ou=" & ActiveDsOrganizationUnitNameVal & _

"," & ParseDomainName(DomainName)

Dim dso As ActiveDs.IADsOpenDSObject

Dim sobj As ActiveDs.IADs

Try

dso = GetObject("LDAP:")

sobj = dso.OpenDSObject(strLDAP, _

AccountNameVal, AccountPassword, _

ActiveDs.__MIDL___MIDL_itf_ads_0000_0018.ADS_SECURE_AUTHENTICATION)

sobj = Nothing

dso = Nothing

LoginActiveDs = True

State = True

Catch

' MsgBox("用户名或密码错误,请重新输入。")

LoginActiveDs = False

State = False

End Try

End Function

'//End define function LoginActiveDs

''//私有的解析域名函数 ParseDomainName

''//根域名 如:com net 等

''//主域域控制器名 如:sunrise Microsoft 等

''//子域名 如:msdn 等 (msdn.microsoft.com)

''//本函数有1个参数,为域名字符串,此处为 DomainName 属性的值

''//返回 LDAP 字符串 如 "DC=sunrise,DC=com"

Private Function ParseDomainName(ByVal IDomainName As String) As String

'解析域名

' DomainName 域名属性

Dim domainDC As String

Dim domTokens 'As String

domTokens = Split(Trim(IDomainName), ".", -1, 1)

domainDC = Join(domTokens, ",DC=")

domainDC = "DC=" & domainDC

ParseDomainName = domainDC

End Function

''定义类UserMailService的属性ExchangeServerName(Exchange DNS服务器名)

Private ExchangeServerNameVal As String

Public Property ExchangeServerName() As String

Get '''<WebMethod(EnableSession:=True)>

Return ExchangeServerNameVal ' Same As Prop1 = PropVal

End Get

Set(ByVal Value As String)

ExchangeServerNameVal = Trim(Value)

End Set

End Property

''定义类UserMailService的属性DomainName(DNS主域名)

Private DomainNameVal As String

Public Property DomainName() As String

Get

Return DomainNameVal ' Same As Prop1 = PropVal

End Get

Set(ByVal Value As String)

DomainNameVal = Trim(Value)

End Set

End Property

''定义类UserMailService的属性ExchangeFirstOrganizationName(Exchange邮件存储系统组织名)

Private ExchangeFirstOrganizationNameVal As String

Public Property ExchangeFirstOrganizationName() As String

Get

Return ExchangeFirstOrganizationNameVal

End Get

Set(ByVal Value As String)

ExchangeFirstOrganizationNameVal = Trim(Value)

End Set

End Property

''定义类UserMailService的属性ADUserDept(用户所在组织单元OU)

Private ActiveDsOrganizationUnitNameVal As String

Public Property ActiveDsOrganizationUnitName() As String

Get

Return ActiveDsOrganizationUnitNameVal

End Get

Set(ByVal Value As String)

ActiveDsOrganizationUnitNameVal = Trim(Value)

End Set

End Property

''定义类UserMailService的属性UserGroupName(用户所加入的组)

Private UserGroupNameVal As String

Public Property UserGroupName() As String

Get

Return UserGroupNameVal

End Get

Set(ByVal Value As String)

UserGroupNameVal = Trim(Value)

End Set

End Property

''定义类UserMailService的属性AccountName(用户账户名)

Private AccountNameVal As String

Public Property AccountName() As String

Get

Return AccountNameVal

End Get

Set(ByVal Value As String)

AccountNameVal = Trim(Value)

End Set

End Property

''定义类UserMailService的属性AccountPassword(用户密码)

Private AccountPasswordVal As String

Public Property AccountPassword() As String

Get

Return AccountPasswordVal

End Get

Set(ByVal Value As String)

AccountPasswordVal = Trim(Value)

End Set

End Property

''定义类UserMailService的属性UserFirstName(用户姓氏)

Private UserFirstNameVal As String

Public Property UserFirstName() As String

Get

Return UserFirstNameVal

End Get

Set(ByVal Value As String)

UserFirstNameVal = Trim(Value)

End Set

End Property

''定义类UserMailService的属性UserLastName(用户名字)

Private UserLastNameVal As String

Public Property UserLastName() As String

Get

Return UserLastNameVal

End Get

Set(ByVal Value As String)

UserLastNameVal = Trim(Value)

End Set

End Property

''定义类UserMailService的属性UserMailBoxName(用邮箱名)

Private UserMailBoxNameVal As String

Public Property UserMailBoxName() As String

Get

Return UserMailBoxNameVal

End Get

Set(ByVal Value As String)

UserMailBoxNameVal = Trim(Value)

End Set

End Property

''定义类UserMailService的ReadOnly属性State(创建连接的状态)

''True(创建成功),False(创建失败)

Private StateVal As Boolean

Public Property State() As Boolean

Get

Return StateVal

End Get

Set(ByVal Value As Boolean)

StateVal = Value

End Set

End Property

End Class

Public Class DBaseLogin

'//Defined Function LoginDBase

'//Function descriptoin

'//本函数获取数据表中的当前登录的用户的信息,使用DataSet绑定数据库和007user表,

'//本函数有2个参数,ILinkedSqlServer为公共函数LinkedSqlServer的返回值SqlConnection,

'// IPublicApplication为公共数据结构PublicApplicationVal

'//本函数返回查询到的 DataSet,包含字段所有字段

'//Begin define function LoginDBase

Public Function LoginDBase(ByVal ILinkedSqlServer As SqlConnection, _

ByVal IPublicApplication As Comm.PublicApplicationVal) As DataSet

Dim strSql As String

Dim objDA As SqlDataAdapter

Dim objDS As New DataSet()

''//查询条件是字符型字段

strSql = "select * from " & IPublicApplication.DBTable & _

" WHERE " & IPublicApplication.QueryFieldName & _

"='" & IPublicApplication.QueryFieldVale & "'"

objDA = New SqlDataAdapter(strSql, ILinkedSqlServer)

objDA.Fill(objDS, "'" & IPublicApplication.DBTable & "'")

objDA = Nothing

LoginDBase = objDS

End Function

'//End define function LoginDBase

End Class

End Namespace

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有