C# 在ASP.NET中验证SQL帐户用户名和密码

C# 在ASP.NET中验证SQL帐户用户名和密码,c#,asp.net,sql-server,authentication,C#,Asp.net,Sql Server,Authentication,对于我的应用程序的一部分,我需要验证用户SQL帐户的详细信息 目前的做法是将用户名和密码附加到connectionstring,然后返回一个包含用户详细信息的数据集。这段代码存在于try语句中,如果抛出异常,它将假定用户详细信息不正确(这是一种非常糟糕的做法!) 当前代码如下所示: iBindClientServices.Services service = new iBindClientServices.Services(); //nasty com+ service

对于我的应用程序的一部分,我需要验证用户SQL帐户的详细信息

目前的做法是将用户名和密码附加到connectionstring,然后返回一个包含用户详细信息的数据集。这段代码存在于try语句中,如果抛出异常,它将假定用户详细信息不正确(这是一种非常糟糕的做法!)

当前代码如下所示:

  iBindClientServices.Services service = new iBindClientServices.Services(); //nasty com+ service           
  try
  {
  string szConn = "DSN=xxxxx" + ";UID=" + userName + ";PWD=" + password;
  //check username and password
  ADODB.Recordset record = service.GetUserDetail(szConn, ""); 
  }

  catch(Exception ex)
  {
  //login unsuccessfull
  }

有没有一种优雅的方法可以做到这一点?

这段代码怎么样

public static bool checkConnection()
{
    SqlConnection conn = new SqlConnection("mydatasource");
    try
    {
         conn.Open();
         return true;
    }
    catch (Exception ex) { return false; }
}

这比已经在做的事情稍微好一点。我希望有一些SQL库具有某种身份验证方法。这种方法的一个问题是,即使用户名和密码正确,每个异常的身份验证都会失败。我认为更重要的是,检查您是否可以使用给定的连接字符串打开到数据库的连接,而上面粘贴的代码只是这样做,没有任何额外的功能。除了使用错误的连接字符串外,我看不到在高速公路使用场景中可能出现的任何其他异常。我不知道有哪种API只验证连接字符串。我同意这样更好。如果存在基础设施问题(数据库或网络关闭等),可能会抛出异常,但我想我会遇到更大的问题!