PDA

View Full Version : سوال: ذخیره کرده یوزری که داره پوست رو قرار میده



r4hgozar
پنج شنبه 16 مرداد 1393, 12:23 عصر
سلام.
سوالم اینه که من بطور مثال با یک یوزر وارد سایت می شم و دارم مطلب می نویسم.
حالا که می خوام مطلب رو ذخیره کنم باید معلوم بشه که کدوم یوزر این مطلب رو گذاشته.
من جدول رو درست کردم یوزر هم وارد میشه و اسمش در سایت نمایش داده میشه.
اما نمی دونم چطوری باید نام یوزر رو در پستم ذخیره کنم.
این هم جدول هام

public class User
{
[Key]
public int Id { get; set; }
public string UserName { get; set; }
public string UserPassword { get; set; }
public string Email { get; set; }
public int? PhonNumber { get; set; }
//foreign key
public int RoleId { get; set; }
//relation
public IEnumerable<Image> Images { get; set; }
public virtual Role Role { get; set; }
//public IEnumerable<Commnet> Commnets { get; set; }
public virtual IEnumerable<Post> Posts { get; set; }


}



این هم کلاس پست


public class Post
{

public int Id { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public DateTime DateTime { get; set; }
public string ImageUrl { get; set; }


//foreign keys
public int UserId { get; set; }
//relation
public virtual User User { get; set; }


public virtual IEnumerable<Commnet> Commnets { get; set; }
public IEnumerable<Post> Posts { get; set; }
}



حالا در Conoroler چطوری باید مشخص کنم کدوم یوزرم در حال حاظر login کرده؟؟

این رو یاد آوری کنم که سیسم login کردن رو نوشتم و یوزرم به خوبی login می کنه و اسمش هم در هدر سایت نمایش داده میشه.

ممنون از همه.

r4hgozar
پنج شنبه 16 مرداد 1393, 14:07 عصر
کسی نیست جواب بده؟

alireza_rashvand
پنج شنبه 16 مرداد 1393, 15:48 عصر
سلام
متوجه نشدم منظورتون از ذخیره نام USER چیه, چون شما باید id کاربر و در پست(UserId) ذخیره کنید نه اسم.(فکر کنم اشتباه نوشتید ذخیره نام)
اینجا (http://barnamenevis.org/showthread.php?452743-ID-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1)و اینجا (http://barnamenevis.org/showthread.php?458752-Login-%D8%AF%D8%B1-MVC)رو نگاه کنید شاید به کارتون بیاد

r4hgozar
پنج شنبه 16 مرداد 1393, 19:08 عصر
سلام.
بله من UserId رو ذخیره می کنم.
تو مدل هام هم نشون دادم.
اما چطور باید وقتی لوگین کردم و یوزرم وارد سایت شد حالا بیام و وقتی می خوام پست بزارم یوزر ID رو به نام تبدیل کنم و نمایش بدم برای هر پست؟

hakim22
پنج شنبه 16 مرداد 1393, 19:49 عصر
وقتی دوتا جدول به هم Relation دارند میتوانید از این روش استفاده کنید :

پست رو از بانک اطلاعاتی لود کنید و سپس :

post.user.username

r4hgozar
جمعه 17 مرداد 1393, 10:44 صبح
من با این دستور میام و یوزر رو وارد cookie می کنم.

FormsAuthentication.SetAuthCookie(userViewModel.Us erName.Trim(), true);


حالا اگه بخوام اون یوزر رو فراخونی کنم باید چی کار کنم؟

alireza_rashvand
شنبه 18 مرداد 1393, 14:17 عصر
سوال شما نامفهومه , بنده متوجه نشدم مشکل شما الان دقیق چیه
اگه مشکلتون اینکه نمی تونید id کاربری که لاگین کرده رو بدست بیارید باید مفاهیم که در دو لینک بالا گفتم رو برای پیاده کردند لاگین, در نظر بگیرید تا همه اطلاعات در اختیارتون قرار بده... (البته هنوز خودم کار نکردم)
اگه مشکل تون اینکه می خواهید از id که دارید به اسم فرد برسید تا نمایش دهید دوستمان(hakim22 (http://barnamenevis.org/member.php?244339-hakim22)) در کامنت قبل نکته ای رو فرمودند, پیشنهاد بنده ام دیدن این تاپیک (http://barnamenevis.org/showthread.php?463606-%D8%B1%D8%A7%D8%A8%D8%B7%D9%87-LINQ-Join-navigation-properties) است.

r4hgozar
شنبه 18 مرداد 1393, 17:23 عصر
سلام دوست بزرگوار.
دقیقا مشکلم همینه/

نمی تونید id کاربری که لاگین کرده رو بدست بیارید

alireza_rashvand
یک شنبه 19 مرداد 1393, 17:25 عصر
دو لینکی که دادم رو پی گیری کن
بنده ام مشکل شما رو دارم ولی هنوز وقت نکردم لاگین رو بنویسم تا این مشکل رو حل کنم
پیشنهادم اینکه از VB 2013 و مباحث احراز هویت مبحثIdentity 2.0 رو کار کن...