请告诉我如何构建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**
我怎样才能以专业和正确的方式做到这一点?
答案 0 :(得分:2)
由于您已经拥有SQL,所以您只需要一个基本表单,除了隐藏密码之外,登录表单没有什么特别之处,您可以使用TextBox.PasswordChar属性执行此操作。
答案 1 :(得分:0)
“Windows身份验证”是什么意思?您可以从环境中读取登录的用户,并使用此值预填充用户文本字段。
tbUserName = Environment.UserName;
用户输入密码后,您的设置将决定该怎么做。密码数据库是否为哈希(MD5,SHA1)还是逐字?如果是,请对输入的密码进行哈希处理 - 如果不是,则不进行哈希处理。
您可以使用这两个字符串,使用您偏好的技术(例如ADO.Net)从您的DataSource中选择实体。如果未返回任何结果,则登录失败。请记住:这样您就无法判断密码或用户是否错误。
答案 2 :(得分:0)
“专业且正确的方式”
这可能取决于您的应用程序的功能,您是否允许看到任何有类似的内容或首先想到应该登录?
如果是:
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)
只是一个想法...... 将您的登录信息作为用户访问的第一个屏幕。 如果他们通过,则显示主应用程序表单并隐藏登录。 如果它们失败,只需显示一条消息说明。 它不像网络应用程序,用户可以输入网址并尝试访问他们想要的任何页面。 你有完全控制权:))