Member 13432601 Ответов: 1

Как я могу получить идентификатор пользователя, который вошел в систему и использовал его в действиях ?


Я создаю онлайн-новостной сайт. Пользователь должен сначала войти в систему, чтобы добавить свою новостную статью. Если пользователь вошел в систему и создает свои собственные статьи, Как я могу получить его идентификатор и сохранить его в базе данных вместе с его новостной статьей?

Что я уже пробовал:

//This is my code in adding news articles

public partial class Articles : System.Web.UI.Page
{
    string cs = ConfigurationManager.ConnectionStrings["NewsDataBaseConnectionString2"].ConnectionString;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            LoadCategory(); 
        }
    }
    protected void btn_AddArticles_Click(object sender, EventArgs e)
    {

        SqlConnection cn = new SqlConnection(cs);
        cn.Open();
        SqlCommand cm = new SqlCommand("Insert into tbl_AddNews (User_id,title, category_id, details, photo, date) values(@Userid, @Title, @Category, @Details, @photo, @Date)", cn);
        cm.Parameters.AddWithValue("@Title", txtbox_Title.Text);
        cm.Parameters.AddWithValue("@Category", DropDownList1.SelectedValue);
        cm.Parameters.AddWithValue("@Details", txtbox_details.Text);
        string strImg = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);
        cm.Parameters.AddWithValue("@photo", strImg);
        cm.Parameters.AddWithValue("@Date", DateTime.Now.ToString());
        cm.ExecuteNonQuery();
        cn.Close();
        FileUpload1.PostedFile.SaveAs(Server.MapPath("Images\\") + strImg);

        
        Response.Redirect("Articles.aspx");
    }

    private void LoadCategory()
    {
        try
        {
            using (SqlConnection con = new SqlConnection(cs))
            {
                SqlCommand cmd = new SqlCommand("select * from tbl_Category", con);
                con.Open();
                DataTable table = new DataTable();
                SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                adapter.Fill(table);

                DropDownList1.DataSource = table;
                DropDownList1.DataValueField = "Category_id";
                DropDownList1.DataTextField = "Category_Name";
                DropDownList1.DataBind();
                DropDownList1.Items.Insert(0, new ListItem("--Select Category--", "0"));
            }
        }

        catch (Exception ex)
        {
            Label1.ForeColor = System.Drawing.Color.Red;
            Label1.Text = "Something went wrong!." + ex.Message + "";
        }
    }
}

Karthik_Mahalingam

какой тип аутентификации вы используете?

Member 13432601

Какая аутентификация ?

Member 13432601

Я просто нищий
Пожалуйста, объясните аутентификацию.

Karthik_Mahalingam

Тогда откуда вы возьмете удостоверение?

Member 13432601

У меня есть 3 таблицы в моей базе данных tbl_User, tbl_Category, tbl_NewsArticles
Я использовал сеанс, чтобы открыть учетную запись пользователя.

Karthik_Mahalingam

как пользователь входит в приложение ?

Member 13432601

Подождите я сделаю страницу где пользователь сможет войти в систему

Member 13432601

//это мой код в loginpage
SqlConnection conn = новый SqlConnection(cs);
Коннектикут.Открыть();
Команда sqlcommand см = новая команда sqlcommand("выбрать количество(*) из хранящей Где UserName='" + txtbox_UN.Текст + "'", соед);
int temp = конвертировать.ToInt32 (см. ExecuteScalar ().Метод toString());

если (temp == 1)
{
SqlConnection con = новый SqlConnection(cs);
против.Открыть();
Команда sqlcommand cmd и = новая команда sqlcommand("выберите пароль от хранящей Где UserName='" + txtbox_UN.Текст + "'", кон);
строковый пароль = cmd.ExecuteScalar ().Метод toString();
if (password == txtbox_PW. Text)
{
Session ["New"] = txtbox_UN. Text;
Ответ.Запись ("пароль правильный");
Ответ.Перенаправление ("Session. aspx");
}
еще
{
Ответ.Write ("пароль неверен");
}
}

еще
{
Ответ.Write ("имя пользователя недопустимо");
}

1 Ответов

Рейтинг:
2

Karthik_Mahalingam

Согласно комментариям, вы храните идентификатор пользователя в сеансе, поэтому вы получите его из сеанса.

string userID = Session["New"]


Примечание: Форматирование строки sql-запроса уязвимый к SQL-инъекция[^] атаки
всегда использовать Параметризованные запросы для предотвращения атак SQL-инъекций в SQL Server[^]