Пример #1
0
 // Client处理TGT  登录过程【没有TGT,即没有uid】
 public Client(string userName, string userPwd, out User u)
 {
     this.kerbAsReq = new KerbASRequest(userName, userPwd);
     User user = asServer.UserValidate(kerbAsReq, ref errorInfo, out tgTicket, out kerbAsResponse);
     u = user;
     if (user != null)
     {
         this.Uid = user.UserCode;
     }
     else
     {
         this.Uid = "";
     }
 }
Пример #2
0
        public User UserValidate(KerbASRequest kerbAsReq, ref string errorInfo, out TGTicket tgticket, out string kerbAsResponse)
        {
            User user = LoginService.GetUser(kerbAsReq.UserName, kerbAsReq.UserPwd);
            if (user == null)
            {
                errorInfo = "输入的用户名和密码错误";
                tgticket = null;
                kerbAsResponse = "";
                return null;
            }
            else
            {
                //TGTicket tgTicket = new TGTicket(user.UserCode);
                //string key1 = KeyType.Session_Key_1;  //Client与TGS的会话密钥
                //string iv = KeyType.Iv;  // Or "********"
                ////StringBuilder strBuilder = new StringBuilder();
                ////strBuilder.Append(tgTicket.Uid);
                ////strBuilder.Append("|");
                ////strBuilder.Append(tgTicket.TS2);
                ////strBuilder.Append("|");
                ////strBuilder.Append(tgTicket.LifeTime2);
                //string strBuilder1 = string.Concat(tgTicket.Uid, "|", Convert.ToString(tgTicket.TS2));
                //string strBuilder = string.Concat(strBuilder1, "|", Convert.ToString(tgTicket.LifeTime2));

                ////string[] strArray = encryptTicket.Split('|');  解密之后应有的操作
                //string encrypttgTicket = desCryp.Encrypt(strBuilder, KeyType.AS_TGS_Key, KeyType.Iv);  //TGTicket票据的加密
                //string kerbAsResp = desCryp.Encrypt(string.Concat(string.Concat(encrypttgTicket, "|", desCryp.GenerateDesCryProvider(ref key1, ref iv)),"|",user.UserCode), KeyType.AS_Client_Key, KeyType.Iv);  // AS向Client发回的响应

                ////tgticket = des.Encrypt(tgTicket,key1,iv);
                //tgticket = tgTicket;
                //kerbAsResponse = kerbAsResp;   //最终AS向Client发送的数据
                TGTicket tgTicket;
                kerbAsResponse = CreateKerbAsResp(user.UserCode, out tgTicket);
                tgticket = tgTicket;
                return user;
            }
        }