我在一个基于 java 的项目中工作,我们在其中使用 LDAP 身份验证模块进行登录。我可以为asp应用程序使用这样的(易于使用的)登录模块吗?
1) 我在 localhost 中单独开发一个 asp.net 应用程序。我需要有关如何实现登录功能的建议。
2)我还需要有关如何定义与登录相关的数据库表的建议。我最初想到有一个表 USER 有两列 user_id 和密码。
3)如果我想以加密格式保存密码,我该如何实现整个功能。(如登录验证,注册时保存密码)
谢谢,
以及各种 MembershipProviders。SqlMembershipProvider 包含最佳实践实现,新的 SimpleMembership 有助于 OpenID 和 OAuth 集成。
关于 SimpleMembership http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-和-asp-net-mvc-4-templates.aspx
快速解决方案:按照@AVD 的建议,从工具箱中添加“登录”控件并使用“网站管理工具”。
参考: http: //msdn.microsoft.com/en-us/library/ssa0wsyf (v=vs.100).aspx
概念/定制解决方案:
从工具箱添加“登录”控件并使用智能标签将其转换为模板。
好吧,“具有两列 user_id 和密码的表 USER”的想法既简单又好,请继续使用。
DES加密:
using System.Security.Cryptography;
static byte[] key = ASCIIEncoding.ASCII.GetBytes("!)@(#*$&"); //Encrypt Key
static byte[] IV= ASCIIEncoding.ASCII.GetBytes("qwertyui"); //Initial Value
protected void Encrypt_Click(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(txtPwd.Text))
{
throw new ArgumentNullException("The string which needs to be encrypted can not be null.");
}
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream,
cryptoProvider.CreateEncryptor(key, IV), CryptoStreamMode.Write);
StreamWriter writer = new StreamWriter(cryptoStream);
writer.Write(txtPwd.Text);
writer.Flush();
cryptoStream.FlushFinalBlock();
writer.Flush();
txtPwd.Text= Convert.ToBase64String(memoryStream.GetBuffer(), 0, (int)memoryStream.Length);
}
protected void Decrypt_Click(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(txtPwd.Text))
{
throw new ArgumentNullException
("The string which needs to be decrypted can not be null.");
}
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream memoryStream = new MemoryStream
(Convert.FromBase64String(TextBox1.Text));
CryptoStream cryptoStream = new CryptoStream(memoryStream,
cryptoProvider.CreateDecryptor(key, IV), CryptoStreamMode.Read);
StreamReader reader = new StreamReader(cryptoStream);
txtPwd.Text=reader.ReadToEnd();
}