PDA

View Full Version : سوال: قرار دادن یک کابر ب عنوان ادمین



usefzade
سه شنبه 04 شهریور 1393, 21:37 عصر
سلام.
من می خام یک کابرمو به عنوان ادمین قرار بدم ، یک کابر ثابت رو...
فقط میدونم ک باید ازین کد استفاده کنم ،اما نمیدونم کجاباید بزارم...




Roles.AddUserToRole("User1", "Admin");

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

jaykob
چهارشنبه 05 شهریور 1393, 08:22 صبح
سلام

شما برای اضافه کردن یک Role به یک کاربر کدش رو می تونید داخل متد Seed در کلاس Migration بزارید . اگر از Migration استفاده نکردید هم می تونید دستی این کاربر رو ایجاد کنید و تمامی اکشن ها یا کنترلر هایی که می خواهید این سطح کاربری دسترسی داشته باشد رو authorize رو بر روی این role name قرار بدهید

موفق باشید

usefzade
چهارشنبه 05 شهریور 1393, 10:19 صبح
سلام.
من میخام فقط یک کابرمو دستی ادمین کنم ، یعنی بگم یوزر 1 ادمین باشه!
میدونم ک اگر بخام سطح دسترسیشو درست کنم باید ازین کد استفاده کنم:


[Authorize(Roles = "Admin", Users = "User1")]

اما نمیدونم کجا باید یوزر 1 رو بعنوان ادمین تعیین کنم؟؟:متفکر:
و اینکه چجوری و با چه کدی؟؟:ناراحت:

jaykob
چهارشنبه 05 شهریور 1393, 10:26 صبح
خوب گفتم که شما مثلا فقط می خواهید یوزر Meysam کاربر ادمین شما باشه از اون طرف شما یک role با نام Admin دارید خوب شما می خواهید کافیه که داخل متد Seed که سر آغاز ساخت دیتابیس شما هست کد زیر رو بنویسید . در ضمن کد ها مربوط به Identity2 است:


var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));
if (!userManager.Users.Any(u => u.UserName == "Meysam"))
{
var user = new ApplicationUser {UserName = "Admin", Email = "meysam@gmail.com"};
var result = userManager.Create(user, "meysam1234");
userManager.AddToRole(user.Id, "Administrator");
}

usefzade
چهارشنبه 05 شهریور 1393, 11:08 صبح
ببخشید!
من این کد رو گذاشتم تو متد seed اما یک ارورایی داره!یعنی دقیق نمیدونم این اروراش از چیه!؟
و اینک مثلا ApplicationUser مال چیه؟و یا UserStore ...؟؟
عکسش رو هم براتون گذاشتم ک ببنید اشکال از چیه ب نظرتون؟122738

jaykob
چهارشنبه 05 شهریور 1393, 11:23 صبح
در متد seed برای دستورات گفته شده باید ارجاعات زیر رو داشته باشید . تمام کلاس ها هم مربوط به Identity است مثلا ApplicationUser کلاس اصلی و مدل کاربران در Identity است :



using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;

usefzade
چهارشنبه 05 شهریور 1393, 11:44 صبح
ارجاعات رو انجام دادم اما اول نمیشناختشون ، بعد از nuget package دانلود و نصبش کردم ک دیگ شناخت ، identity رو دانلود کردم!
اما بازهم اروراش هس...:ناراحت:
122739