说来也不简单,需要打几个标签,非常重要的 上代码吧 对象CODE using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization; namespace uniRMS.UUCS.Helper { [KnownType(typeof(ResponseParaMatersLogOff))] [KnownType(typeof(ResponseParaMatersChangePwd))] [KnownType(typeof(ResponseParaMatersCheck))] [KnownType(typeof(ResponseParaMatersReg))] [KnownType(typeof(ResponseParaMatersLogin))] [KnownType(typeof(ResponseParaMatersBase))] [KnownType(typeof(RequestParaMatersLogoff))] [KnownType(typeof(RequestParaMatersChangePwd))] [KnownType(typeof(RequestParaMatersCheck))] [KnownType(typeof(RequestParaMatersReg))] [KnownType(typeof(RequestParaMatersLogin))] [KnownType(typeof(RequestParaMatersBase))] [DataContract(Namespace = "uniRMS.UUCS.Helper")] public class AuthenticateEntity { [DataMember] public OperateEnum Operate { set; get; } [DataMember] public string RequestUrl { set; get; } [DataMember] public string ResponseUrl { set; get; } [DataMember] public RequestParaMatersBase RequestParaMaters { set; get; } [DataMember] public ResponseParaMatersBase ResponseParaMaters { set; get; } } [DataContract(Namespace = "uniRMS.UUCS.Helper")] public enum OperateEnum { 登录, 注册, 用户状态检测, 密码修改, 注销 } #region RequestParaMaters [KnownType(typeof(RequestParaMatersBase))] [DataContract(Namespace = "uniRMS.UUCS.Helper")] public abstract class RequestParaMatersBase { /// <summary> /// /// </summary> [DataMember] public string Action { set; get; } [DataMember] public string SiteId { set; get; } } /// <summary> /// 登录 /// </summary> [KnownType(typeof(RequestParaMatersLogin))] [DataContract(Namespace = "uniRMS.UUCS.Helper")] public class RequestParaMatersLogin : RequestParaMatersBase { [DataMember] public string UserName { set; get; } [DataMember] public string PassWord { set; get; } [DataMember] public string AutoLogin { set; get; } [DataMember] public string ReturnUrl { set; get; } [DataMember] public string IsLogin { set; get; } } /// <summary> /// 注册 /// </summary> [KnownType(typeof(RequestParaMatersReg))] [DataContract(Namespace = "uniRMS.UUCS.Helper")] public class RequestParaMatersReg : RequestParaMatersBase { [DataMember] public string UserName { set; get; } [DataMember] public string Email { set; get; } [DataMember] public string PassWord { set; get; } } /// <summary> /// 用户状态检测 /// </summary> [KnownType(typeof(RequestParaMatersCheck))] [DataContract(Namespace = "uniRMS.UUCS.Helper")] public class RequestParaMatersCheck : RequestParaMatersBase { [DataMember] public string ReturnUrl { set; get; } [DataMember] public string IsLogin { set; get; } } /// <summary> /// 密码修改 /// </summary> [KnownType(typeof(RequestParaMatersChangePwd))] [DataContract(Namespace = "uniRMS.UUCS.Helper")] public class RequestParaMatersChangePwd : RequestParaMatersBase { [DataMember] public string Passeid { set; get; } [DataMember] public string Password { set; get; } [DataMember] public string Newpwd { set; get; } } /// <summary> /// 注销 /// </summary> [KnownType(typeof(RequestParaMatersLogoff))] [DataContract(Namespace = "uniRMS.UUCS.Helper")] public class RequestParaMatersLogoff : RequestParaMatersBase { [DataMember] public string RetunUrl { set; get; } } #endregion #region ResponseParamaters [KnownType(typeof(ResponseParaMatersBase))] [DataContract(Namespace = "uniRMS.UUCS.Helper")] public abstract class ResponseParaMatersBase { [DataMember] public string Action { set; get; } [DataMember] public string R { set; get; } } /// <summary> /// 登录 /// </summary> [KnownType(typeof(ResponseParaMatersLogin))] [DataContract(Namespace = "uniRMS.UUCS.Helper")] public class ResponseParaMatersLogin : ResponseParaMatersBase { [DataMember] public string Ticket { set; get; } [DataMember] public string UserName { set; get; } [DataMember] public string ReturnUrl { set; get; } [DataMember] public string Email { set; get; } [DataMember] public string PassWord { set; get; } [DataMember] public string PassId { set; get; } } /// <summary> /// 注册 /// </summary> [KnownType(typeof(ResponseParaMatersReg))] [DataContract(Namespace = "uniRMS.UUCS.Helper")] public class ResponseParaMatersReg : ResponseParaMatersBase { [DataMember] public string Passeid { set; get; } } /// <summary> /// 用户信息检测 /// </summary> [KnownType(typeof(ResponseParaMatersCheck))] [DataContract(Namespace = "uniRMS.UUCS.Helper")] public class ResponseParaMatersCheck : ResponseParaMatersBase { [DataMember] public string PassId { set; get; } [DataMember] public string Ticket { set; get; } [DataMember] public string UserName { set; get; } [DataMember] public string ReturnUrl { set; get; } [DataMember] public string Email { set; get; } [DataMember] public string Password { set; get; } } /// <summary> /// 修改密码 /// </summary> [KnownType(typeof(ResponseParaMatersChangePwd))] [DataContract(Namespace = "uniRMS.UUCS.Helper")] public class ResponseParaMatersChangePwd : ResponseParaMatersBase { //与基类相同 } /// <summary> /// 注销 /// </summary> [KnownType(typeof(ResponseParaMatersLogOff))] [DataContract(Namespace = "uniRMS.UUCS.Helper")] public class ResponseParaMatersLogOff : ResponseParaMatersBase { [DataMember] public string ReturnUrl { set; get; } } #endregion } 工具CODE /// <summary> /// 从一个对象信息生成Json串 /// </summary> /// <param name="obj"></param> /// <returns></returns> public static string ObjectToJson(object obj) { DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType()); using (MemoryStream stream = new MemoryStream()) { json.WriteObject(stream, obj); return System.Text.Encoding.UTF8.GetString(stream.ToArray()); } } /// <summary> /// 从一个Json串生成对象信息 /// </summary> /// <param name="jsonString"></param> /// <param name="obj"></param> /// <returns></returns> public static object JsonToObject(string jsonString, object obj) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); using (MemoryStream mStream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString))) { return serializer.ReadObject(mStream); } } /// <summary> /// 将Json反序列化为强类型对象 /// </summary> /// <typeparam name="T">强类型</typeparam> /// <param name="jsonString">Json字符串</param> /// <returns></returns> public static T JsonDeserialize<T>(string jsonString) { DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T)); using (MemoryStream ms=new MemoryStream (Encoding.UTF8.GetBytes(jsonString))) { T obj = (T)ser.ReadObject(ms); return obj; } } /// <summary> /// 向指定页面发请求 /// </summary> /// <param name="url">请求的URL地址</param> /// <param name="myEncoding">编码格式</param> /// <param name="dicPara">Post的参数列表</param> /// <param name="isPost">请求方式true:Post否则Get</param> /// <returns>请求将返回一个字符串</returns> public static string RequestPage(string url, Encoding myEncoding, Dictionary<string, string> dicPara,bool isPost) { try { StringBuilder param = new StringBuilder(); var i = (dicPara == null) ? 0 : dicPara.Count; if (dicPara != null) { foreach (var item in dicPara) { param.AppendFormat("{0}={1}", HttpUtility.UrlEncode(item.Key, myEncoding), HttpUtility.UrlEncode(item.Value, myEncoding)); i--; if (i > 0) { param.AppendFormat("&"); } } } byte[] postBytes = Encoding.ASCII.GetBytes(param.ToString()); HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); req.Method = isPost ? "POST" : "GET"; if (isPost) { req.ContentType = "application/x-www-form-urlencoded;charset=gb2312"; req.ContentLength = postBytes.Length; } req.CookieContainer = new CookieContainer(); byte[] bs = Encoding.ASCII.GetBytes(param.ToString()); using (Stream reqStream = req.GetRequestStream()) { reqStream.Write(bs, 0, bs.Length); } using (WebResponse wr = req.GetResponse()) { StreamReader reader = new StreamReader(wr.GetResponseStream(), myEncoding); string content = reader.ReadToEnd(); return content; } } catch (Exception ex) { throw ex; } }