我在一个基于java的项目中工作,我们在其中使用LDAP身份验证模块进行登录。 我是否可以将这些(易于使用的)登录模块用于asp应用程序。
1)我在localhost中单独开发一个asp.net应用程序。我需要有关如何实现登录功能的建议。
2)我还需要有关如何定义与登录相关的数据库表的建议。 我最初想到的是一个表USER,它有两列user_id和密码。
3)如果我想以加密格式保存密码,我该如何实现整个功能。 (如登录验证,注册时保存密码)
谢谢,
答案 0 :(得分:1)
各种会员提供者。 SqlMembershipProvider包含最佳实践实现,新的SimpleMembership帮助OpenID和OAuth集成。
On SimpleMembership http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web-forms-and-asp-net-mvc-4-templates.aspx
答案 1 :(得分:0)
快速解决方案:从工具箱中添加“登录”控件&按照@AVD的建议使用“网站管理工具”。
参考:http://msdn.microsoft.com/en-us/library/ssa0wsyf(v=vs.100).aspx
概念/自定义解决方案:
从工具箱中添加“登录”控件&使用将其转换为模板 智能标记。
嗯,这个想法是“一个表有两列user_id和密码的表” 很简单&好的,顺其自然。
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();
}