none
如何做winform网络验证程序? RRS feed

  • 问题

  • 最近做了一个Winform程序,想用网络验证控制用户使用期限,如果做成HttpWebRequest发送登录信息到服务器,验证后返回成功标志,这样比较不安全,很容易就被破解。如果直接访问SQL数据库的1433端口,防火墙如果限制了又没办法访问。我知道如果防破解都没有用,有没有行之有效的方法比较不容易被破解?网上搜了一下别人的做法,是把一些关键类型放到服务器,是放什么呢?这样如果网速不稳定的时候会不会闪退?
    
    
    
    
    
    
    
    2013年11月12日 2:55

全部回复

  • 用WebService或者WCF试试看,可以绕过防火墙机制,直接调用。

    For Account Validation, please follow "Verify Account+Number" at http://social.msdn.microsoft.com/Forums/en-us/home?forum=reportabug

    For ASP.NET Question, please ask at http://forums.asp.net

    For other questions, you can find a specific forum and then ask at http://stackexchange.com/sites

    Click and Donate at http://www.freerice.com

    2013年11月12日 5:28
    版主
  • 好的,我去试试,还有就是如果我想时时验证(每隔1分钟验证一次),我之前直接连的1433端口,用户反映经常闪退,我怀疑网络不好的时候没法验证会这样,怎么样验证才能更好的保证用户的使用,也能验证到位?
    2013年11月12日 5:40
  • 你可以考虑写一个Windows Service,或者用后台线程进行验证。

    For Account Validation, please follow "Verify Account+Number" at http://social.msdn.microsoft.com/Forums/en-us/home?forum=reportabug

    For ASP.NET Question, please ask at http://forums.asp.net

    For other questions, you can find a specific forum and then ask at http://stackexchange.com/sites

    Click and Donate at http://www.freerice.com

    2013年11月12日 5:47
    版主
  • 我就是用后台线程,间隔一段时间验证一次,但是如果正好网络不好,没验证正确怎么办?该怎么处理,还是我该给记录个验证失败次数,达到多少次就算验证失败?
    2013年11月12日 6:44
  • 后者,比如5次验证都失败则算失败。

    For Account Validation, please follow "Verify Account+Number" at http://social.msdn.microsoft.com/Forums/en-us/home?forum=reportabug

    For ASP.NET Question, please ask at http://forums.asp.net

    For other questions, you can find a specific forum and then ask at http://stackexchange.com/sites

    Click and Donate at http://www.freerice.com

    2013年11月12日 6:55
    版主
  • 谢谢版主:)
    2013年11月12日 7:13
  • 您可以先试试看,能彻底解决问题再标记答案也不迟;)

    For Account Validation, please follow "Verify Account+Number" at http://social.msdn.microsoft.com/Forums/en-us/home?forum=reportabug

    For ASP.NET Question, please ask at http://forums.asp.net

    For other questions, you can find a specific forum and then ask at http://stackexchange.com/sites

    Click and Donate at http://www.freerice.com

    2013年11月12日 7:18
    版主
  • 还是没有尝试出。。

    httpWebRequest 要怎么访问aspx后台操作?我的aspx页面在WEB服务器上是用jquery验证的,客户端也想访问这个验证来登陆,但是一直只访问的到前台HTML页面

    这个是客户端写的验证请求

                IDictionary<string, string> parameters = new Dictionary<string, string>();
                parameters.Add("Account", "111");
                parameters.Add("Password", "111");
                string data = CreateRequest("POST", "http://xxxx.com/Login.aspx/doLogin", parameters, this.UserAgent, null);


    public static HttpWebRequest CreateRequest(string mode, string url, string parameters, string useragent, string cookie)
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.UserAgent = useragent;
                if (mode.Equals("GET"))
                {
                    request.Method = "GET";
                }
                else
                {
                    request.Method = "POST";
                    request.ContentType = "application/x-www-form-urlencoded";
                    request.Accept = "*/*";
                    request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip, deflate");
                    request.Headers.Add("Accept-Language: zh-cn");
                    request.KeepAlive = true;
                    request.ServicePoint.Expect100Continue = false;
                    request.Expect = null;
                }
                if (!string.IsNullOrEmpty(cookie))
                {
                    request.Headers.Add("Cookie", cookie);
                }
                Encoding uTF = Encoding.UTF8;
                byte[] bytes = uTF.GetBytes(parameters);
                Stream requestStream = request.GetRequestStream();
                requestStream.Write(bytes, 0, bytes.Length);
                requestStream.Close();
                return request;
            }

    Login.aspx/doLogin

    namespace Test
    {
        public partial class Login : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
    
            [WebMethod]
            public static bool doLogin(string Account, string Password)
            {
                bool result = false;
                return result;
            }
        }
    }
    


    2014年1月1日 14:25
  • 求助~~
    2014年1月4日 11:31