Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
asp.net c#登录网页错误_C#_Asp.net_Visual Studio_Web_Login - Fatal编程技术网

asp.net c#登录网页错误

asp.net c#登录网页错误,c#,asp.net,visual-studio,web,login,C#,Asp.net,Visual Studio,Web,Login,我遇到了以下问题: 我正在使用asp.net和c#创建一个网站,第一个页面是登录页面,HTML基本上是两个文本字段和一个按钮,其中要求以下功能: protected void Button1_Click(object sender, EventArgs e) { ServicioIS.Service1SoapClient objeto = new ServicioIS.Service1SoapClient(); string a = ci.Val

我遇到了以下问题:

我正在使用asp.net和c#创建一个网站,第一个页面是登录页面,HTML基本上是两个文本字段和一个按钮,其中要求以下功能:

protected void Button1_Click(object sender, EventArgs e)
     {

         ServicioIS.Service1SoapClient objeto = new ServicioIS.Service1SoapClient();
          string a = ci.Value.ToString();
          string b = pass.Value.ToString();
          // bool x = objeto.Log(a,b);
          bool flag = false;
          SqlConnection con = new SqlConnection();
          con.ConnectionString = "Server=.;database=Proyecto.mdf;user=;password=";
          con.Open();
          string check = "SELECT COUNT(*) FROM Admin WHERE login ='" + a + "'";
          SqlCommand com = new SqlCommand(check, con);
          int cont = Convert.ToInt32(com.ExecuteScalar().ToString());
          con.Close();
          if (cont == 1)
          {
              con.Open();
              string checkpass = "SELECT pass FROM Admin WHERE login = '" + a + "'";
              SqlCommand ds = new SqlCommand(checkpass, con);
              string contra = ds.ExecuteScalar().ToString().Replace(" ", "");
              con.Close();
              if (a == contra)
              {
                  flag = true;
              }
          }
           if (flag)
           {
               Response.Write("Contraseña Correcta");
           }
           else
           {
               Response.Write("usuario o contraseña invalidos");
           }


     }
错误和堆栈跟踪如下所示:

Line 31:               SqlConnection con = new SqlConnection();
Line 32:               con.ConnectionString = "      "Server=.;database=Proyecto.mdf;user=;password=";
Line 33:               con.Open();
Line 34:               string check = "SELECT COUNT(*) FROM Admin WHERE   login ='" + a + "'";
Line 35:               SqlCommand com = new SqlCommand(check, con);

Source File: c:\Users\Fabrizio\Desktop\Nueva carpeta     (2)\ProyectoIS\WebAppIS\WebAppIS\Interface\Login.aspx.cs    Line: 33 

Stack Trace: 


[SqlException (0x80131904): Login failed for user ''.]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception,     Boolean breakConnection, Action`1 wrapCloseInAction) +5347119
   System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject  stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +546
System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand   cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,   TdsParserStateObject stateObj, Boolean& dataReady) +1693
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +69
System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +30
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +317
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) +892
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) +311
  System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData) +646
 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +278
 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +38
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +732
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +85
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +1057
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +78
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +196
 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +146
System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +16
System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +94
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +110
System.Data.SqlClient.SqlConnection.Open() +96
WebAppIS.Interface.Login.Button1_Click(Object sender, EventArgs e) in  c:\Users\Fabrizio\Desktop\Nueva carpeta (2)\ProyectoIS\WebAppIS\WebAppIS\Interface\Login.aspx.cs:33
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9627718
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
 System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl,   String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724

PD:im使用Visual Studio 2012,如果它使修复变得更容易:)

听起来像是用户身份验证问题。出于安全原因,SQL隐藏了错误的详细信息,但您应该能够在SQL Server错误日志中找到更多信息。有关疑难解答信息,请参阅以下链接:

听起来像是用户身份验证问题。出于安全原因,SQL隐藏了错误的详细信息,但您应该能够在SQL Server错误日志中找到更多信息。有关疑难解答信息,请参阅以下链接:

SQL错误表示您的应用程序没有对数据库的权限。我认为这是因为您提供了一个用户和密码属性,但将其留空。尝试使用受信任的连接

con.ConnectionString = "Server=.\SQLExpress;AttachDbFilename=Proyecto.mdf;Database=dbname;Trusted_Connection=Yes;";
此外,注释中还指出,您的代码容易受到SQL注入攻击。这是非常正确的。您应该使用参数化SQL将变量添加到SQL语句中,如下所示

SqlParam param;

string check = "SELECT COUNT(*) FROM Admin WHERE login=@LoginName";
SqlCommand com = new SqlCommand(check, con);
param = new SqlParameter("@LoginName", SqlDbType.VarChar);
param.Direction = ParameterDirection.Input;
param.Value = a;
com.Parameters.Add(param);

SQL错误意味着您的应用程序对数据库没有权限。我认为这是因为您提供了一个用户和密码属性,但将其留空。尝试使用受信任的连接

con.ConnectionString = "Server=.\SQLExpress;AttachDbFilename=Proyecto.mdf;Database=dbname;Trusted_Connection=Yes;";
此外,注释中还指出,您的代码容易受到SQL注入攻击。这是非常正确的。您应该使用参数化SQL将变量添加到SQL语句中,如下所示

SqlParam param;

string check = "SELECT COUNT(*) FROM Admin WHERE login=@LoginName";
SqlCommand com = new SqlCommand(check, con);
param = new SqlParameter("@LoginName", SqlDbType.VarChar);
param.Direction = ParameterDirection.Input;
param.Value = a;
com.Parameters.Add(param);

你有一个SQL注入漏洞。我不知道这其中有多少是复制粘贴错误<代码>服务器=。;数据库=Proyecto.mdf;用户=;password=您的连接字符串中没有用户,基于堆栈跟踪,这是您的问题。此外,sql注入,您需要参数化输入,以便添加错误在第33行“con.Open();”中。此外,我使用VisualStudio创建了数据库,并且我dindt请求了一个用户nor pw,所以我将其留空?我该怎么办?嗨@FabrizioBruzzese你在使用Windows身份验证吗?你有一个SQL注入漏洞。我不知道其中有多少是复制粘贴错误<代码>服务器=。;数据库=Proyecto.mdf;用户=;password=您的连接字符串中没有用户,基于堆栈跟踪,这是您的问题。此外,sql注入,您需要参数化输入,以便添加错误在第33行“con.Open();”中。此外,我使用VisualStudio创建了数据库,并且我dindt请求了一个用户nor pw,所以我将其留空?我该怎么办?嗨@FabrizioBruzzese你在使用Windows身份验证吗?谢谢你的回答,这对我来说是个新东西,我还在努力弄清楚。。。我想我现在就用xml吧。谢谢你的回答,这对我来说是个新东西,我还在努力想办法解决它。。。我想我现在就用xml。谢谢你的答案和代码,这对我来说是新东西,而且已经失控了(我曾经做过一个数据库小应用程序,所以我也可以这么做),我想我现在就用xml吧。我非常感谢你提供的信息,不客气。如果你觉得某个帖子对你有帮助,习惯上会投票支持它。并选择最有帮助的帖子作为被接受的答案。这些投票和被接受的答案帮助我们解锁了这个网站上的功能。谢谢你的答案和代码,这对我来说是新东西,所以正在失控(我曾经做过一个数据库小应用程序,所以我也可以这么做),我想我现在只使用xml。我非常感谢你提供的信息,不客气。如果你觉得某个帖子对你有帮助,习惯上会投票支持它。并选择最有帮助的帖子作为被接受的答案。这些投票和被接受的答案帮助我们解锁这个网站上的能力。