如何开发登录表单C#.net

时间:2010-09-09 13:30:48

标签: c# winforms login

请告诉我如何构建Windows窗体登录。(不是ASP.net) 。此登录不仅要使用Windows身份验证方法验证,还要使用数据库用户进行验证。

如何验证用户名和密码。 我使用了这种类型的查询

SELECT COUNT(*) FROM [Table Name] WHERE UserName = @username AND Password = @password;

如果用户可用计数> 0 以上部分处理代码方。

using int x = Int32.Parse(commandObject.ExecuteScalar().ToString());
if(x > 0}
    **log**
else
    **fail**

我怎样才能以专业和正确的方式做到这一点?

4 个答案:

答案 0 :(得分:2)

由于您已经拥有SQL,所以您只需要一个基本表单,除了隐藏密码之外,登录表单没有什么特别之处,您可以使用TextBox.PasswordChar属性执行此操作。

答案 1 :(得分:0)

“Windows身份验证”是什么意思?您可以从环境中读取登录的用户,并使用此值预填充用户文本字段。

tbUserName = Environment.UserName;

用户输入密码后,您的设置将决定该怎么做。密码数据库是否为哈希(MD5,SHA1)还是逐字?如果是,请对输入的密码进行哈希处理 - 如果不是,则不进行哈希处理。

您可以使用这两个字符串,使用您偏好的技术(例如ADO.Net)从您的DataSource中选择实体。如果未返回任何结果,则登录失败。请记住:这样您就无法判断密码或用户是否错误。

答案 2 :(得分:0)

“专业且正确的方式”

这可能取决于您的应用程序的功能,您是否允许看到任何有类似的内容或首先想到应该登录?

如果是:

  • 使用登录屏幕创建窗体表单
  • 点击“登录”按钮,按照你想要的方式检查sql
  • 如果可以,请关闭该窗口,并在应用程序的主窗口中执行form.Show()
  • 其他,只是给出一个不允许用户继续进行的充分理由

如果是Windows身份验证,您需要检查该Windows用户是否可以访问它,执行相同的过程,但您确实对formLogin.Active采取行动,并要求提供凭据,如果该Windows用户不是有效用户并且再次做上述过程。

例如,SuperOffice CRM 6 Windows应用程序具有以下登录形式:

alt text http://www.balexandre.com/temp/2010-09-09_1557.png

我希望能有所帮助。

如果您只是询问代码,那么您已经有了很好的答案。

答案 3 :(得分:0)

只是一个想法...... 将您的登录信息作为用户访问的第一个屏幕。 如果他们通过,则显示主应用程序表单并隐藏登录。 如果它们失败,只需显示一条消息说明。 它不像网络应用程序,用户可以输入网址并尝试访问他们想要的任何页面。 你有完全控制权:))