私は初心者なので、現在苦労している ASP.net コードで達成したいことが 2 つあります。
1) 現在、 Login.aspxのコードはSQL インジェクションの影響を受けやすいですが、SQL インジェクションのリスクを最小限に抑えるにはどうすればよいですか?
using System;
using System.Collections;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.Configuration;
public partial class login : System.Web.UI.Page
{
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
string username = Login_Box.UserName;
string pwd = Login_Box.Password;
string strConn;
strConn = WebConfigurationManager.ConnectionStrings["team13ConnectionString"].ConnectionString;
SqlConnection Conn = new SqlConnection(strConn);
Conn.Open();
string sqlUserName;
sqlUserName = "SELECT id,pass FROM ts_dept ";
sqlUserName += " WHERE (id ='" + username + "')";
sqlUserName += " AND (pass ='" + pwd + "')";
SqlCommand com = new SqlCommand(sqlUserName, Conn);
string CurrentName;
CurrentName = (string)com.ExecuteScalar();
if (CurrentName != null)
{
Session["UserAuthentication"] = username;
Session.Timeout = 1;
Response.Redirect("Default.aspx");
}
else
{
Session["UserAuthentication"] = "";
}
}
}
2) Default.aspxは私の Web サイトのホームページです。ユーザーがログインしていない場合はアクセスできません。ここで Session["Authentication"] を確認するにはどうすればよいですか ( null の場合、ユーザーはLogin.aspxにリダイレクトされます。これまでのコードは次のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Team13
{
public partial class default : System.Web.UI.Page
{
}
}