PDA

View Full Version : چند سوال در مورد indentity و احراز هویت



Kaziveh
سه شنبه 20 مرداد 1394, 14:39 عصر
سلام . لطفا اگر می توانید پاسخ دهید ، جواب سوال های زیر رو بدهید . ممنون

1- چه زمانی باید از asp.net identity استفاده کنیم ؟
2- مزیت استفاده از asp.net identity چیست ؟
3- من قبلا با یک روش آشنا شدم در سایت dotnettips که به این صورت که هر کنترلر یا اکشن که نیاز به لاگین داشت یک dataannottion به آن اضافه میکردم و بعد از صحت اطلاعات لاگین کاربر به متد SetAuthCookie می فرستادم که به صورت زیر بود . وقتی می توانم از کد زیر استفاده کنم چه نیازی به asp.net identity هست ؟
لطفا کمک کنید ، خیلی گنگ شده برام و نمی دونم باید چکار کنم .




private void SetAuthCookie(string memberName, string roleofMember, bool presistantCookie)
{
var timeout = presistantCookie ? FormsAuthentication.Timeout.TotalMinutes : 30;

var now = DateTime.UtcNow.ToLocalTime();
var expirationTimeSapne = TimeSpan.FromMinutes(timeout);

var authTicket = new FormsAuthenticationTicket(
1,memberName,now,now.Add(expirationTimeSapne),pres istantCookie,roleofMember,FormsAuthentication.Form sCookiePath
);

var encryptedTicket = FormsAuthentication.Encrypt(authTicket);
var authCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket)
{
HttpOnly = true,
Secure = FormsAuthentication.RequireSSL,
Path = FormsAuthentication.FormsCookiePath
};

if (FormsAuthentication.CookieDomain != null)
{
authCookie.Domain = FormsAuthentication.CookieDomain;
}

if (presistantCookie)
authCookie.Expires = DateTime.Now.AddMinutes(timeout);

Response.Cookies.Add(authCookie);
}

HOSSEINONLINE7
سه شنبه 20 مرداد 1394, 18:14 عصر
سلام Identity یک سیستم احراز هویت کامل و جامعه . به شخصه یکبار ازش استفاده کردم در یکی پروژه هام و اصلا پشیمون شدم. تا موقعی که نخواید شخصی سازیش کنید و همین امکاناتش به کارتون میاد و مطابق نیازهاتون هست خیلی خوبه ولی اگر بخواید شخصی سازی کنید و تغییرات بدید بعضی قسمت هاش اینقدر پیچیده میشه که مدام باید بگردید توی نت و مستندات و چیزی پیدا کنید و دنبال کلاس ها و اون قسمت مورد نظر بگردید و تغییر بدید .

من از همون MemberShip استفاده میکنم و خودم هرجور بخوامش سفارشی مینویسم راحت ترم .

Kaziveh
سه شنبه 20 مرداد 1394, 19:11 عصر
باز هم به نظر دوستان نیاز دارم . لطفا سوال های بالا رو اگه جوابشو بلدید بهم بگید .ممنون

r4hgozar
چهارشنبه 21 مرداد 1394, 09:15 صبح
سلام Identity یک سیستم احراز هویت کامل و جامعه . به شخصه یکبار ازش استفاده کردم در یکی پروژه هام و اصلا پشیمون شدم. تا موقعی که نخواید شخصی سازیش کنید و همین امکاناتش به کارتون میاد و مطابق نیازهاتون هست خیلی خوبه ولی اگر بخواید شخصی سازی کنید و تغییرات بدید بعضی قسمت هاش اینقدر پیچیده میشه که مدام باید بگردید توی نت و مستندات و چیزی پیدا کنید و دنبال کلاس ها و اون قسمت مورد نظر بگردید و تغییر بدید .

من از همون MemberShip استفاده میکنم و خودم هرجور بخوامش سفارشی مینویسم راحت ترم .

شما می تونید identity رو به پروژه اضافه کنید و خودتون کد هاش رو بنویسین.
شاید منظور شما IDENTITY.sample هست.
این کد ها فقط میاد و بعضی مثال ها در باره نحوه کار با اون رو بهتون یاد میده.
موفق باشید

hakim22
چهارشنبه 21 مرداد 1394, 10:12 صبح
به نظر من شما حتما باید از Identity استفاده کنید. نوشتن کدهای امنیتی یک تخصص بسیار بالاست و هرگونه اشتباهی در این زمینه میتونه بسیار خطرناک باشه.
اگر به همین کدی که به همراه پروژه های پیشفرض ساخته میشه نگاهی بیاندازید میبینید که نکات زیادی در نظر گرفته شده تا امنیت حفظ بشه.
در مورد شخصی سازی فکر نمیکنم کار سختی باشه و من در پروژه های زیادی اینکارو کردم. در حد اضافه کردن چند فیلد یا تنظیم محدودیت ها و... کار بسیار ساده ای است.
اگر هم شما بخواهید کل سیستم شخصی سازی بشه میتوانید بجای نوشتن دستی با استفاه از Interface های Identity تمامی کدها رو باز نویسی کنید ولی همچنان در ساختار Identity کار کنید.

HOSSEINONLINE7
پنج شنبه 22 مرداد 1394, 22:34 عصر
شما می تونید identity رو به پروژه اضافه کنید و خودتون کد هاش رو بنویسین.
شاید منظور شما IDENTITY.sample هست.
این کد ها فقط میاد و بعضی مثال ها در باره نحوه کار با اون رو بهتون یاد میده.
موفق باشید

یعنی من بیام کل اون چیزایی که اضافه کرده را پاک کنم ؟ خود Identity حتی جداول هم بصورت CodeFirst خودش میسازه . قبلا باهاش کار کردم هماهنگ کردنش با DbContext پروژه خودمون دردسر بود .

پروژه باید برای CodeFirst یک DbContext داشته باشه وگرنه تداخل پیش میاد .

اینقدرم فرم و کلاس به پروژه اضافه میکنه و ساختارش پیچیده هست که اصلا ادم حوصله نمیکنه بگرده توش .

شاید من نمیدونم درست درکش نکردم و روش ساده تری برای استفاده ازش هست .

من توی یکی پروژه هام با ناگت نصبش کدم بعد همون ساختار و فرمهایی که برام ساخته بود را شخصی سازی کردم . بدلیل اینکه ساختار پروژه و نیازهاش با Identity فرق داشت ناچار به تغییرات بسیار زیادی شدم و مجبور بودم خیلی کلاسها را تغییرات بدم مثل سیستم ارسال Sms و عضویت و اعتبارسنجی و ... که واقعا بیچاره شدم تا همش انجام شد .

اگر کاری که من انجام دادم راحش نیست پس لطفا راهنمایی کنید تا یاد بگیریم باید چطور استفاده کنیم .

r4hgozar
شنبه 24 مرداد 1394, 08:37 صبح
سلام.اقای حسین.
شما می تونید کل این مجموعه identity رو در یک area درست کنید . یعنی یه بار تغییر بدین و بعد در همه پروژه هات استفاده کنی.
مثلا من خودم بجز 3 تا مدل اصلی بقیه کلاس های identity رو بردم در class library و کنترل ها رو هم بردم در یک area . الانم هر وقت بخوام میام و فقط کپی می کنم تو پروژه های دیگم.

در مورد DBContext هم در سته identity یکی مال خودش داره. شما هم می تونی یکی بسازی. اما باید اسم هر دو تا یکی باشه. یعنی اسمی که به دیتابیست می دی.
بعد در webconfig هم یه مسیر و همون اسم رو به دیتابیست می دی. با ابن کار ی دیتابیس ساخته میشه. اما تو 2 تا مرحله. یک بار بعد فراخونی identity و بعدی بعد فراخونیجداول خودت.

موفق باشی

alireza_rashvand
دوشنبه 26 مرداد 1394, 02:52 صبح
سلام
اضافه کردن Identity 2.0 (http://barnamenevis.org/showthread.php?471502-%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-Identity-2-0)