2011-11-28 83 views
0

请考虑这两种登录方式在ASP.NET页面:正确方法

  1. 连接使用Windows认证:

    _con = new SqlConnection(@"Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=True"); 
    _con.Open(); 
    

    之后,我们可以检查如果cusromer提供的用户名存在于Users表中,那么登录成功。

  2. 或者使用用户名和密码连接:

    _con = new SqlConnection(@"Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"); 
    _con.Open(); 
    

    其中提供有效的用户名和密码才能连接到数据库并获取数据,只有用户后,可创造在DB为每一位客户的用户。

问题:

  1. 是在ASP.NET页面实现登录正确的这些方式?
  2. 如果是的话,你更喜欢什么样的方式,第一个还是第二个?
  3. 在ASP.NET页面中实现登录的更好方法是什么?
+0

我认为我误读的问题。标题表示您要求**登录到网站**,但代码片段指示**连接到数据库**。他们是两回事。您是否特别想知道连接数据库的最佳方式? – David

+0

@David Stratton:你提供了关于表单认证的好链接,我已经阅读过:)。问题是关于一点点不同的事情,请看这个链接:http://www.asp.net/security/tutorials/an-overview-of-forms-authentication-cs。然后找到LoginButton_Click的实现。注意,为了完成这个实现需要以某种方式连接到数据库并获取用户的登录名和密码。所以问题是关于从数据库检查客户提供的登录名和密码的有效性以及登录名和密码的正确方法。什么是最好的方式来做到这一点? – Vadim

+0

然后我的回答不适用。看到其他两个答案,这两个答案都更好地回答你的实际问题。 – David

回答

2

就我个人而言,我不会为每个用户使用连接字符串。否则,你会在保持登录你的应用程序和sql服务器的额外头痛。

使用一个登录您的应用程序,并且您可以使用自己的登录支票或使用ASP.NET成员资格提供:http://msdn.microsoft.com/en-us/library/ff648345.aspx

+0

好的,谢谢,我会用第一种方法登录:) – Vadim

2

特别是方法2真的是个坏消息,因为您必须为您的网站的每个用户创建一个SQL登录名。

我不确定我是否真的想让每个用户都能访问您的数据库,所以真的要小心。

如果您可以使用Windows身份验证一次性解决大部分(身份验证)问题,并且您真的不需要花费太多时间来运行它。