系统登录中,和邮件系统合并,系统本来的用户名和密码可以登录,用邮件用户密码也可以登录。
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
/**//// <summary>
/// 登陆
/// </summary>
/// <param name="strUser">用户ID</param>
/// <param name="strPsw">用户密码</param>
/// <returns></returns>
public bool Login(string strUser,string strPsw)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
string SQL=" SELECT U.USERID,U.USERNAME"
+" FROM BS_USER U "
+" WHERE U.STATUS=0 AND U.USERID='"+strUser+"' AND USERPWD='"+strPsw+"'";
DataTable Dt=IBSConn.getDataSet(SQL).Tables[0];
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**////AD 验证
if(Dt.Rows.Count==0)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
AD_China ad=new AD_China();
if(!ad.IsAuthenticated(strUser,strPsw)) return false;
}
![](/Images/OutliningIndicators/InBlock.gif)
SQL=" SELECT U.USERID,U.USERNAME,U.Email,O.ORGID,O.ORGNAME,F.OrgID AS FinOrgID,F.FincName,O.ORGFORM,PRMTNAME AS ORGFORMNAME, O.NODEID,O.TREEID"
+",OP.OrgID ParentOrgID ,OP.OrgName ParentOrgName"
+" FROM BS_USER U LEFT JOIN BS_ORG O ON U.ORGID=O.ORGID"
+" LEFT JOIN BS_ORG OP ON O.SuperOrgID=OP.OrgID"
+" LEFT JOIN BS_FinanceOrg F ON O.FincID=O.FincID "
+" LEFT JOIN DBO.BS_PRMT P ON P.PRMTTYPEID=1 AND PRMTID=O.ORGFORM"
+" WHERE U.STATUS=0 AND( U.USERID='"+strUser+"'OR U.Email='"+strUser+"')"; // 验证邮件用户密码
Dt=IBSConn.getDataSet(SQL).Tables[0];
if(Dt.Rows.Count>=1)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//其他操作
}else return false;
![](/Images/OutliningIndicators/InBlock.gif)
return true;
![](/Images/OutliningIndicators/InBlock.gif)
}
AD验证类:
public class AD_China
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
private string _path;
private string _filterAttribute;
![](/Images/OutliningIndicators/InBlock.gif)
public AD_China()
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
//
// TODO: 在此处添加构造函数逻辑
//
![](/Images/OutliningIndicators/InBlock.gif)
_path="LDAP://china.com/DC=china,DC=com";
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
/**//*
<add key="AdminUser" value="R7xM12rqyGA="/>
<add key="AdminUserPassword" value="pZ/cZiaO9TE="/>
*/
![](/Images/OutliningIndicators/InBlock.gif)
}
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/OutliningIndicators/InBlock.gif)
public bool IsAuthenticated(string username, string pwd)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
try
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
DirectoryEntry entry = new DirectoryEntry( _path, username, pwd);
// 绑定到本机 AdsObject 以强制身份验证。
Object obj = entry.NativeObject;
DirectorySearcher search = new DirectorySearcher(entry);
search.Filter = "(SAMAccountName=" + username + ")";
search.PropertiesToLoad.Add("cn");
SearchResult result = search.FindOne();
if(null == result)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
return false;
}
// 更新目录中的用户的新路径
_path = result.Path;
_filterAttribute = (String)result.Properties["cn"][0];
}
catch (Exception ex)
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
// throw new Exception("对用户进行身份验证时出错。 " + ex.Message);
return false;
}
return true;
}
}