登录asp.net应用程序的模块

时间:2012-09-27 05:16:17

标签: c# asp.net login

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

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

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

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

谢谢,

2 个答案:

答案 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

概念/自定义解决方案

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

  2. 嗯,这个想法是“一个表有两列user_id和密码的表”     很简单&好的,顺其自然。

  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();
    }