مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

source

عضویت از 1395/11/13

مشکل استفاده از فانکشن در کنترلر دیگر

  • سه شنبه 12 شهریور 1398
  • 12:11
تشکر میکنم

سلام

یه فانکشن تووی یه کنترلر دیگه استفاده کردم.

تووی کنترلر جاری یه آبجکت از نوع همون کنترلری که فانکشن توشه ساختم.

خروجی اون فانکشن یه استرینگه.

ولی هر وقت صداش میزنم میره تووی catch اون فانکشن رو برمیگردونه.

در صورتی که مشکلی نداره فانکشن وقتی تووی کنترلر جاری استفادش میکنم.

پاسخ های این پرسش

تعداد پاسخ ها : 5 پاسخ
کاربر سایت

salman_b

عضویت از 1396/02/18

  • سه شنبه 12 شهریور 1398
  • 19:43

سلام به روی ماهت

کلا این کار اشتباه هستش

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

کاربر سایت

source

عضویت از 1395/11/13

  • سه شنبه 12 شهریور 1398
  • 20:44

درست شد مرسی.

یه سوال:

[Authorize(Users = "Betty, Johnny")]

تووی فانکشنی که تعریف کردم میره یوزر و پسورد رو چک میکنه و بعد یه مقدار بازگشتی 0 یا 1 برمیگردونه. این مدل بهتره یا متد بالا؟

یکی از برنامه نویسا یه پیشنهادی کرد برای کاتسوم کردن [Authorize] .


public class CustomAttribute:AuthorizeAttribute
    {
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            base.OnAuthorization(filterContext);
            IsUserAuthorized(filterContext);
        }

        private void IsUserAuthorized(AuthorizationContext filterContext)
        {
            if (!filterContext.HttpContext.Request.IsAuthenticated)
            {
// کدها
 }
            if (filterContext.Result == null) return;
        }
 }

فقط نمیدونم چطوری کار میکنه و جای (کدها) بایستی چی بگذارم. و متد بالارو کجا باید اضافه کنم و بعد اسمش رو ببرم بالای اکشن مورد نیاز.

کدهای مربوط به دیتابس رو باست جای (کدها) بنویسم و مقداریرو برگشت بدم؟

با ado.net کار میکنم. میخوام به یوزرم دسترسی های لازم رو روی اکشن ها بدم.

کاربر سایت

salman_b

عضویت از 1396/02/18

  • پنجشنبه 14 شهریور 1398
  • 09:31

سلام
اکشن فیلترها یکی از قابلیت‌‌های مهم در asp mvc هستند و من ترجیج میدم فیلتر authorize رو شخصی سازی کنم.
توی همین متد OnAuthorize اگه filterContext.Result برابر بشه با مقدار زیر کاربر نمیتونه از اکشن مورد نظر استفاده کنه.

filterContext.Result = new HttpStatusCodeResult(HttpStatusCode.Unauthorized);

خب حالا تو از authorize header اون شناسه‌ای رو که کاربر واست فرستاده میخونی و کوئری که میخوای رو میزنی و اگه دسترسی نداشت مفدار بالا رو تنظیم میکنی.
واسه اینکه کاربری با نقش خاص به اکشن مورد نظر دسترسی داشته باشه از خصوصیتی به نام Role که توی همین فیلتر موجود هست استفاده کن و کوئری مورد نیاز رو بزن و ادامه ماجرا...

اگه سوالی داشتی همینجا بپرس

موفق باشی

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 14 شهریور 1398
  • 09:40

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

فرض کن یه سشن داریم به نام username و مقدار david. این رو کجای این کد بگذارم. که سشن رو چک کنه و وقتی CustomAttribute رو میگذارم بالای اکشن مورد نظر بتونه از اون استفاده کنه!

کاربر سایت

source

عضویت از 1395/11/13

  • پنجشنبه 14 شهریور 1398
  • 13:30

پیداش کردم

ممنونم smiley

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)