0

我在一个基于 java 的项目中工作,我们在其中使用 LDAP 身份验证模块进行登录。我可以为asp应用程序使用这样的(易于使用的)登录模块吗?

1) 我在 localhost 中单独开发一个 asp.net 应用程序。我需要有关如何实现登录功能的建议。

2)我还需要有关如何定义与登录相关的数据库表的建议。我最初想到有一个表 USER 有两列 user_id 和密码。

3)如果我想以加密格式保存密码,我该如何实现整个功能。(如登录验证,注册时保存密码)

谢谢,

4

2 回答 2

1

以及各种 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

于 2012-09-27T05:21:19.853 回答
0

快速解决方案:按照@AVD 的建议,从工具箱中添加“登录”控件并使用“网站管理工具”。

参考: http: //msdn.microsoft.com/en-us/library/ssa0wsyf (v=vs.100).aspx

概念/定制解决方案

  1. 从工具箱添加“登录”控件并使用智能标签将其转换为模板。

  2. 好吧,“具有两列 user_id 和密码的表 USER”的想法既简单又好,请继续使用。

  3. 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();
    }
    
于 2012-09-27T06:09:19.130 回答