ورود

View Full Version : سوال: مجوز های دسترسی به کاربران و اعطاء نقش ؟؟؟؟ (Authentication and Authorization)



oracle_dba
پنج شنبه 15 بهمن 1394, 18:59 عصر
سلام
برای پروژه ایی که نیاز به تعیین محوز های دسترسی برای کاربران وجود دارد چطور باید این کار رو انجام بدیم ؟
1- تعریف جداول نقش ها و مجوز ها و کاربران و تعیین مجوز های هر نقش و همچنین تعیین نقش های کاربران ؟؟ قابلیت Authentication , Authorization در ASP.Net می تونه این کار رو انجام بده ؟؟
2-منو های سایت رو چطور میشه برای هر کاربر بر اساس دسترسیش تعیین کرد ؟
3- مجوز ها شامل چی هستند ؟؟؟ همون action ها هستند یعنی مثلا میگیم Index Action برای فلان ماژول یک مجوز است ؟؟؟ چطور باید تعریفش کرد ؟؟؟
ممنون میشم اگه دوستان راهنما و یا منبعی رو معرفی کنند .

sunn789
جمعه 16 بهمن 1394, 09:31 صبح
توی MVC دسترسی ها یا استفاده از Authorize انجام میشگیره و میشود این Authorize را هم به کلاس و هم به اکشن داد با سطح دسترسی کاربر و یا سطح دسترسی نقش مثلا admin,
برای منو ها هم میتوانید در هر جا که قرار است نمایش داده شود بنویسید
@if (User.Identity.IsAuthenticated && User.IsInRole("Admin"))
{
<li>@Html.ActionLink("مدیریت", "Index", "Home", new { area = "Admin" }, null)</li>
}

oracle_dba
جمعه 16 بهمن 1394, 13:09 عصر
توی MVC دسترسی ها یا استفاده از Authorize انجام میشگیره و میشود این Authorize را هم به کلاس و هم به اکشن داد با سطح دسترسی کاربر و یا سطح دسترسی نقش مثلا admin,
برای منو ها هم میتوانید در هر جا که قرار است نمایش داده شود بنویسید
@if (User.Identity.IsAuthenticated && User.IsInRole("Admin"))
{
<li>@Html.ActionLink("مدیریت", "Index", "Home", new { area = "Admin" }, null)</li>
}

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

parsdarab
جمعه 16 بهمن 1394, 22:38 عصر
سلام
من یه سئوال در مورد این داشتم که فرق کاربری که لاگین نکرده و کاربری که لاگین کرده اما مجوز نداره رو چجوری میشه تشخیص داد

کد به صورت زیر است و customize شده


protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.User.Identity.IsAuthent icated)
{
base.HandleUnauthorizedRequest(filterContext);
}
if (filterContext.HttpContext.User.Identity.IsAuthent icated)
{
filterContext.Result = new RedirectToRouteResult(new
RouteValueDictionary(new { area = "BaseSystem", controller = "ManageErrors", action = "Unauthorized" }));
}


}