网站登录凭据的最佳存储方法是什么?

4
我已经创建了一个ASP.NET 3.5网站,只有2或3个用户登录ID可以登录到该网站。
哪种方法最适合保存这些登录详细信息?从安全和维护角度来看,哪种方法最好?还有哪些适用于ASP.NET登录系统的方法?
以下是几种方法:
1.使用表单身份验证,并将凭据(用户名和密码)保存在web.config中。 2.创建一个文本文件并将其修改。
建议采用第一种方法,因为它更加安全且易于维护。此外,还可以考虑使用数据库来存储登录详细信息。

1
IIS会向任何寻找它的人提供这个文件,所以请不要使用文本文件。 - earthling
4个回答

8

2
您已经有了数据库吗?如果是这样,请使用表单身份验证和ASP.NET会员资格,就像每个人都说的那样。它非常容易集成到您当前的数据库中(假设它是SQL Server-我不知道其他数据库)。我意识到由于预算或其他原因,为2或3个用户添加数据库并不总是可行的,因此您可以使用表单身份验证并将用户存储在web.config中。我以前做过这个,它非常简单。
您的web.config将如下所示:
<authentication mode="Forms">
    <forms loginUrl="Login.aspx">
        <credentials passwordFormat="Clear">
            <user name="myUser" password="password" />
        </credentials>
    </forms>
</authentication>

然后,您可以使用内置的登录控件。如果您这样做,您需要实现“验证”事件。
    protected void Login1_Authenticate(object sender, System.Web.UI.WebControls.AuthenticateEventArgs e)
    {
        string UserName = Login1.UserName;
        string Password = Login1.Password;

        if (FormsAuthentication.Authenticate(UserName, Password))
        {
            e.Authenticated = true;
        }
        else
        {
            e.Authenticated = false;
        }
    }

当然,这并不是最安全的方法,您可能至少会想要查看在web.config中加密凭据,但是当数据库不是选项时,它很简单并且有效。

我也推荐那个解决方案。如果用户不经常更改,那么最好的时间花费/收益关系。 - citronas

0
使用ASP.NET,您可以使用一些内置/提供的身份验证提供程序来管理数据库中的用户,并且默认情况下遵循适当的准则,如散列密码等。

0
你可以使用ASP.NET membership。即使你没有很多用户,它也会为你处理所有的身份验证细节。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接