ورود

View Full Version : سوال: راهنمایی



fatemefa
سه شنبه 18 آبان 1395, 15:00 عصر
سلام
من 1 اکشن دارم که دارای view که داخلش 1 سری لینک به این شکل می باشد که اینها برای مدیر

<td>
@Html.ActionLink("مشاهده جرئیات", "Details", new { id = item.Id })
</td>
<td>
@Html.ActionLink("ویرایش", "Edit", new { id = item.Id })
</td>

حالا میخوام همین اکشن با همین شکل به کاربر هم نشون بدم اما بدون لینکها میخوام بدونم باید تو همین کنترلر همین اکشن با ویو دیگه مجددا بنویسم یا اینکه توی اکشن برحسب نقش کاربر شناسایی کنم و به ویو مربوطه متصلش کنم یا راه دیگه ایی هست
میخوام راه اصولی بدونم
ممنون

Moien Tajik
سه شنبه 18 آبان 1395, 15:48 عصر
اگر تعداد مدیر های داخل سایتتون ثابت هست ، میتونید با نام کاربری چک کنید که اگر نام کاربری کسی که لاگین کرده ... بود براش این هارو نشون بدید به این صورت :

@if(User.Identity.GetUserName() == "Admin")
{
<td>
@Html.ActionLink("مشاهده جرئيات", "Details", new { id = item.Id })
</td>
<td>
@Html.ActionLink("ويرايش", "Edit", new { id = item.Id })
</td>
}


اما اگر با نقش های کاربری بخواید کار کنید ، باید Role های کاربر فعلی که لاگین کرده رو بگیرید و چک کنید که داخل Role هاش اون Role مدیر وجود داره یا نه ، اگر وجود داشت بهش اون مشخصات رو نشون بدید :

@{
ApplicationDbContext db = new ApplicationDbContext();
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(db));
if (userManager.IsInRole(User.Identity.GetUserId(),"administrator"))
{
<td>
@Html.ActionLink("مشاهده جرئيات", "Details", new { id = item.Id })
</td>
<td>
@Html.ActionLink("ويرايش", "Edit", new { id = item.Id })
</td>
}
}

r4hgozar
سه شنبه 18 آبان 1395, 21:18 عصر
سلام.
شما در موقع احراز هویت میاین و role برای هر مدیر قرار میدین. می تونین از کد

if (Page.User.IsInRole("Admin"))

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

http://stackoverflow.com/questions/14969167/checking-login-user-role-in-razor-page

http://stackoverflow.com/questions/14475590/how-can-i-check-a-user-is-in-a-role-in-asp-mvc4-simple-membership