تست غیر مخرب

آموزش انواع تست غیر مخرب

تست غیر مخرب

آموزش انواع تست غیر مخرب

سعی می گردد یک سری از آموزش های انواع تست غیر مخرب در این وبلاگ قرار بگیرد

نویسندگان

۱۲ مطلب در اسفند ۱۳۹۵ ثبت شده است

۲۷
اسفند
۹۵

مطالعه ناسا برای ساخت تلسکوپ با کمک خورشید



با پیشروی منجمان ناسا در فضاهای بین ستاره‌ای نیاز آنها به تلسکوپ‌های قدرتمند بیشتر احساس می‌شود و به همین دلیل طرحی برای استفاده از نور خورشید به عنوان عدسی یک تلسکوپ قدرتمند مطرح شده است.


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

  • ndt web
۲۳
اسفند
۹۵

خبرگزاری فارس: مهماندوست: خوشحالم یک بار دیگر با تکواندوی آذربایجان قهرمان شدیم/ جای ایران خالی بود


سرمربی ایرانی تیم ملی تکواندوی آذربایجان گفت:‌ خوشحالم از اینکه یک بار دیگر با تکواندوی آذربایجان عنوان قهرمانی را کسب کرده‌ایم و جای تکواندوی ایران در این رقابت‌ها خالی بود.


رضا م

  • ndt web
۲۱
اسفند
۹۵

پیشرفته ترین سکوی حفاری نیمه شناور جهان تحویل شد


 

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


کشتی سازی CIMC Raffles چین، پیشرفته ترین سکوی حفاری نیمه شناور جهان با عمق بسیار زیاد موسوم به 1 Bluewhale را تحویل داد.


سکوی حفاری 1 Bluewhale ازقابلیت فعالیت حفاری تا عمق 50 هزار فوتی ( 15 هزار و 240 متر) برخورداراست، از این رو می تواند در آبهای سراسر جهان عملیات حفاری را انجام دهد.


ارتفاع سکوی حفاری مذکور 387 فوت ( معادل 118 متر) است، به طوری که با یک ساختمان 37 طبقه هم اندازه است.


کشتی سازی CIMC Raffles چین در این باره گفت: 1 Bluewhale با ظرفیت 42 هزار تن، 10 درصد سوخت کمتری نسبت به سکوهای دیگر مصرف می کند.


هزینه شناور مذکور 700 میلیون دلار برآورد شده است.


لازم به ذکر است: 1 Bluewhale، نهمین سکوی نیمه شناور است که از سوی کشتی سازی CIMC Raffles چین تحویل داده شده است.


این گزارش در ادامه نوشت: درسال 2016، هفت کشتی سازی چین ائتلافی را با هدف تقسیم منابع احداث سکو، تشکیل دادند.


  • ndt web
۱۸
اسفند
۹۵

مد و لباس

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

  • ndt web
۱۸
اسفند
۹۵

پیک تحویل غذا در ورزشگاه شیراز


دیدار حساس فجرسپاسی شیراز و بادران تهران در ورزشگاه دستغیب شیراز یک حاشیه عجیب به دنبال داشت


به گزارش "ورزش سه"، در دقیقه 63 بازی هواداران حاضر در ورزشگاه با حضور ناگهانی یک پیک موتوری در کوریدور رو به سکوها مواجه شدند، پیکی که غذای سفارش گرفته شده از سوی حاضران در ساختمان اداری این ورزشگاه را به آنها تحویل می داد. 


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


تصاویر تلویزیونی "ورزش سه"، از این اتفاق باورنکردنی در رقابت های لیگ دسته اول را تماشا کنید. چیزی که نشان می دهد نکاتی مثل بلیت فروشی، امنیت و ... در این رده از رقابت های فوتبال چقدر به شوخی شبیه است.

  • ndt web
۱۷
اسفند
۹۵

ترامپ

رییس‌جمهوری آمریکا نسخه جدید فرمان مهاجرتی را امضا کرد.


به گزارش ایسنا، دولت دونالد ترامپ، رییس‌جمهوری آمریکا اعلام کرد، دستورالعمل جدید منع ورود مسافران و مهاجران، از ۱۰ روز دیگر به اجرا گذاشته خواهد شد.

  • ndt web
۱۶
اسفند
۹۵

افزایش بازدید سایت

در حال حاظر طراحی فروشگاه اینترنتی و طراحی سایت به امری لازم و ضروری تبدیل شده است و همچنین به علت وجود رقبا باید سایت شما دارای قابلیت های خاصی باشد که شما بتوانید برای فروش محصولات و ارائه خدمات آنلاین با دیگر رقبا رقابت نمایید.

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

  • ndt web
۱۴
اسفند
۹۵

از نگارش‌های پیشین ASP.NET، هنوز هم اطلاعات شیء User مانند User.Identity.Name در ASP.NET Core نیز در دسترس هستند. به این ترتیب زمانیکه کاربری به سیستم وارد شد، دیگر نیازی نیست تا جهت یافتن Name او، از بانک اطلاعاتی کوئری گرفت. خاصیت Name یاد شده به صورت خودکار از کوکی رمزنگاری شده‌ی او دریافت شده و در اختیار برنامه قرار می‌گیرد. این Name در ASP.NET Core Identity، اصطلاحا یک User Claim پیش‌فرض نام دارد و به صورت خودکار ایجاد و مقدار دهی می‌شود. اکنون این سؤال مطرح می‌شود که آیا می‌توان خاصیت دیگری را به شیء User.Identity اضافه کرد؟



جدول AppUserClaims 





جدول AppUserClaims، جزو جداول اصلی ASP.NET Core Identity است و هدف آن ذخیره‌ی اطلاعات ویژه‌ی کاربران و بازیابی ساده‌تر آن‌ها از طریق کوکی‌های آن‌ها است (همانند User.Identity.Name). زمانیکه کاربری به سیستم وارد می‌شود، بر اساس UserId او، تمام رکوردهای User Claims متعلق به او از این جدول واکشی شده و به صورت خودکار به کوکی او اضافه می‌شوند.


در پروژه‌ی DNT Identity از این جدول استفاده نمی‌شود. چون اطلاعات User Claims مورد نیاز آن، هم اکنون در جدول AppUsers موجود هستند. به همین جهت افزودن این نوع User Claimها به جدول AppUserClaims، به ازای هر کاربر، کاری بیهوده است. سناریویی که استفاده‌ی از این جدول را با مفهوم می‌کند، ذخیره سازی تنظیمات ویژه‌ی هرکاربر است (خارج از فیلدهای جدول کاربران). برای مثال اگر سایتی را چندزبانه طراحی کردید، می‌توانید یک User Claim سفارشی جدید را برای این منظور ایجاد و زبان انتخابی کاربر را به عنوان یک رکورد جدید مخصوص آن در این جدول ویژه ثبت کنید. مزیت آن این است که واکشی و افزوده شدن اطلاعات آن به کوکی شخص، به صورت خودکار توسط فریم ورک صورت گرفته و در حین مرور صفحات توسط کاربر، دیگر نیازی نیست تا اطلاعات زبان انتخابی او را از بانک اطلاعاتی واکشی کرد.

بنابراین برای ذخیره سازی تنظیمات با کارآیی بالای ویژه‌ی هرکاربر، جدول جدیدی را ایجاد نکنید. جدول User Claim برای همین منظور درنظر گرفته شده‌است و پردازش اطلاعات آن توسط فریم ورک صورت می‌گیرد.



ASP.NET Core Identity چگونه اطلاعات جدول AppUserClaims را پردازش می‌کند؟ 


ASP.NET Identity Core در حین لاگین کاربر به سیستم، از سرویس SignInManager خودش استفاده می‌کند که با نحوه‌ی سفارشی سازی آن پیشتر در قسمت دوم این سری آشنا شدیم. سرویس SignInManager پس از لاگین شخص، از یک سرویس توکار دیگر این فریم ورک به نام UserClaimsPrincipalFactory جهت واکشی اطلاعات User Claims و همچنین Role Claims و افزودن آن‌ها به کوکی رمزنگاری شده‌ی شخص، استفاده می‌کند.

بنابراین اگر قصد افزودن User Claim سفارشی دیگری را داشته باشیم، می‌توان همین سرویس توکار UserClaimsPrincipalFactory را سفارشی سازی کرد (بجای اینکه الزاما رکوردی را به جدول AppUserClaims اضافه کنیم).


اطلاعات جالبی را هم می‌توان از پیاده سازی متد CreateAsync آن استخراج کرد:

public virtual async Task<ClaimsPrincipal> CreateAsync(TUser user)

1) userId شخص پس از لاگین از طریق User Claims ایی با نوع Options.ClaimsIdentity.UserIdClaimType به کوکی او اضافه می‌شود.

2) userName شخص پس از لاگین از طریق User Claims ایی با نوع Options.ClaimsIdentity.UserNameClaimType به کوکی او اضافه می‌شود.

3) security stamp او (آخرین بار تغییر اطلاعات اکانت کاربر) نیز یک Claim پیش‌فرض است.

4) اگر نقش‌هایی به کاربر انتساب داده شده باشند، تمام این نقش‌ها واکشی شده و به عنوان یک Claim جدید به کوکی او اضافه می‌شوند.

5) اگر یک نقش منتسب به کاربر دارای Role Claim باشد، این موارد نیز واکشی شده و به کوکی او به عنوان یک Claim جدید اضافه می‌شوند. در ASP.NET Identity Core نقش‌ها نیز می‌توانند Claim داشته باشند (امکان پیاده سازی سطوح دسترسی پویا).


بنابراین حداقل مدیریت Claims این 5 مورد خودکار است و اگر برای مثال نیاز به Id کاربر لاگین شده را داشتید، نیازی نیست تا آن‌را از بانک اطلاعاتی واکشی کنید. چون این اطلاعات هم اکنون در کوکی او موجود هستند.



سفارشی سازی کلاس UserClaimsPrincipalFactory جهت افزودن User Claims سفارشی 


تا اینجا دریافتیم که کلاس UserClaimsPrincipalFactory کار مدیریت Claims پیش‌فرض این فریم ورک را برعهده دارد. در ادامه از این کلاس ارث بری کرده و متد CreateAsync آن‌را جهت افزودن Claims سفارشی خود بازنویسی می‌کنیم. این پیاده سازی سفارشی را در کلاس ApplicationClaimsPrincipalFactory می‌توانید مشاهده کنید:

public override async Task<ClaimsPrincipal> CreateAsync(User user)

        {

            var principal = await base.CreateAsync(user).ConfigureAwait(false);

            addCustomClaims(user, principal);

            return principal;

        }


        private static void addCustomClaims(User user, IPrincipal principal)

        {

            ((ClaimsIdentity) principal.Identity).AddClaims(new[]

            {

                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString(), ClaimValueTypes.Integer),

                new Claim(ClaimTypes.GivenName, user.FirstName ?? string.Empty),

                new Claim(ClaimTypes.Surname, user.LastName ?? string.Empty),

                new Claim(PhotoFileName, user.PhotoFileName ?? string.Empty, ClaimValueTypes.String),

            });

        }

در حین بازنویسی متد CreateAsync، ابتدا base.CreateAsync را فراخوانی کرده‌ایم، تا اخلالی در عملکرد این فریم ورک رخ ندهد و هنوز هم همان مواردی که در قسمت قبل توضیح داده شد، به صورت پیش فرض به کوکی شخص اضافه شوند. سپس در متد addCustomClaims، تعدادی Claim سفارشی خاص خودمان را اضافه کرده‌ایم.

برای مثال نام، نام خانوادگی و نام تصویر شخص به صورت Claimهایی جدید به کوکی او اضافه می‌شوند. در این حالت دیگر نیازی نیست تا به ازای هر کاربر، جدول AppUserClaims را ویرایش کرد و اطلاعات جدیدی را افزود و یا تغییر داد. همینقدر که کاربر به سیستم لاگین کند، شیء User او به متد Create کلاس UserClaimsPrincipalFactory ارسال می‌شود. به این ترتیب می‌توان به تمام خواص این کاربر دسترسی یافت و در صورت نیاز آن‌ها را به صورت Claimهایی به کوکی او افزود.


پس از تدارک کلاس ApplicationClaimsPrincipalFactory‌، تنها کاری را که باید در جهت معرفی و جایگرینی آن انجام داد، تغییر ذیل در کلاس IdentityServicesRegistry است:

services.AddScoped<IUserClaimsPrincipalFactory<User>, ApplicationClaimsPrincipalFactory>();

services.AddScoped<UserClaimsPrincipalFactory<User, Role>, ApplicationClaimsPrincipalFactory>();

یکبار ApplicationClaimsPrincipalFactory را به عنوان پیاده سازی کننده‌ی IUserClaimsPrincipalFactory معرفی کرده‌ایم. همچنین یکبار هم سرویس توکار UserClaimsPrincipalFactory را به سرویس سفارشی خودمان هدایت کرده‌ایم. به این ترتیب مطمئن خواهیم شد که همواره از ApplicationClaimsPrincipalFactory ما استفاده خواهد شد (حتی اگر UserClaimsPrincipalFactory اصلی از سیستم تزریق وابستگی‌ها درخواست شود).

  


چگونه به اطلاعات User Claims در سرویس‌های برنامه دسترسی پیدا کنیم؟ 


برای دسترسی به اطلاعات User Claims نیاز به دسترسی به HttpContext جاری را داریم. در این مورد و تزریق سرویس IHttpContextAccessor جهت تامین آن، در مطلب «بررسی روش دسترسی به HttpContext در ASP.NET Core» پیشتر بحث شده‌است.

به علاوه در کلاس IdentityServicesRegistry، تزریق وابستگی‌های سفارشی‌تری نیز صورت گرفته‌است:

services.AddScoped<IPrincipal>(provider =>

    provider.GetService<IHttpContextAccessor>()?.HttpContext?.User ?? ClaimsPrincipal.Current);

در اینجا اگر نیاز به اطلاعات Claims شیء User را داشتید، می‌توانید اینترفیس IPrincipal را هم بجای IHttpContextAccessor، به سازنده‌ی کلاس مدنظر خود تزریق کنید.



چگونه اطلاعات User Claims سفارشی را دریافت کنیم؟ 


برای کار ساده‌تر با Claims یک کلاس کمکی به نام IdentityExtensions به پروژه اضافه شده‌است و متدهایی مانند دو متد ذیل را می‌توانید در آن مشاهده کنید:

public static string FindFirstValue(this ClaimsIdentity identity, string claimType)

        {

            return identity?.FindFirst(claimType)?.Value;

        }


        public static string GetUserClaimValue(this IIdentity identity, string claimType)

        {

            var identity1 = identity as ClaimsIdentity;

            return identity1?.FindFirstValue(claimType);

        }

در اینجا نحوه‌ی استخراج اطلاعات را از شیء User و یا User.Identity مشاهده می‌کنید. تنها کافی است claimType ایی را درخواست کرده و سپس مقدار آن‌را از کوکی شخص به نحو فوق واکشی کنیم.

برای نمونه متد GetUserDisplayName این کلاس کمکی، از همان Claims سفارشی که در کلاس ApplicationClaimsPrincipalFactory تعریف کردیم، اطلاعات خود را استخراج می‌کند و اگر در View ایی خواستید این اطلاعات را نمایش دهید، می‌توانید بنویسید:

@User.Identity.GetUserDisplayName()



چگونه پس از ویرایش اطلاعات کاربر، اطلاعات کوکی او را نیز به روز کنیم؟ 


در پروژه قسمتی وجود دارد جهت ویرایش اطلاعات کاربران (UserProfileController). اگر کاربری برای مثال نام و نام خانوادگی خود را ویرایش کرد، می‌خواهیم بلافاصله متد GetUserDisplayName اطلاعات صحیح و به روزی را از کوکی او دریافت کند. برای اینکار یا می‌توان او را وادار به لاگین مجدد کرد (تا پروسه‌ی رسیدن به متد CreateAsync کلاس ApplicationClaimsPrincipalFactory طی شود) و یا روش بهتری نیز وجود دارد:

// reflect the changes, in the current user's Identity cookie

await _signInManager.RefreshSignInAsync(user).ConfigureAwait(false);

در اینجا تنها کافی است متد RefreshSignInAsync را مجددا بر اساس اطلاعات ویرایش شده‌ی کاربر، فراخوانی کنیم تا کوکی او را بلافاصله به روز کند و این روش نیازی به اجبار به لاگین مجدد کاربر را ندارد.

  • ndt web
۰۹
اسفند
۹۵

معرفی 10 سایت ساز ایرانی

 

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

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

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

به همین علت برخی شرکت ها اقدام به ساخت سایت ساز در ایران و ارائه آن به مردم محترم ایران نموده اند.

در اینجا قصد داریم ده سایت ساز ایرانی که در کشور فعالیت دارند را معرفی کنیم. هر کدام از این سایت ساز ها دارای ویژگیهای منحصر به فردی می باشد که در زیر به بررسی برخی از این ویژگی ها می پردازیم:

1-    سایت ساز کاج

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

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

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

2-    سایت ساز پوپش

شعار این شرکت در کمتر از 5 دقیقه سایت خود را تحویل بگیرید است.

این سایت ساز نیز بصورت درگ اند دراپ بوده و می توانید محل قرار گیری فقط متن ها و تصاویر خود را خودتان تعیین کنید.

قالبهای این سایت ساز در حدود 35 قالب می باشد و این قالبها ریسپانسیو نبوده که برای سال 95 مناسب نیست.

3-    سایت ساز پرتال

این سایت ساز در حدود 20 قالب برای مشتریان خود آماده کرده که همگی ریسپانسیو بوده که مشتریان می توانند از بین آنها قالب خود را انتخاب کنند.

این سایت ساز امکانات خوبی را برای کاربران خود محیا کرده است که نیاز کاربران را بر آورده می کند.

4-    سایت ساز sitesaz.ir

از نظر تنوع قالب خیلی خوب عمل کرده و بالای 450 قالب در اختیار کاربران خود قرار داده است.

دموی آنلاینی از قالبها در سایت مشاهده نشد که بتوان ریسپانسیو بودن یا نبودن آنها بررسی شود.

خود سایت اصلی شرکت ریسپانسیو نمی باشد.

نرم افزار سایت ساز در حال حاضر دارای دو نسخه 1.7 و 1.8 می باشد. این سایت ساز بصورت چند زبانه می باشد.

5-    نوین سایت ساز

شعار این شرکت هم سایت خود را در 5 دقیقه بسازید می باشد.

تعداد قالب های این سایت ساز در حدود 9 قالب می باشد که از نظر تنوع بسیار کم بود و بعضی از نمونه کارهای این شرکت ریسپانسیو و بعضی دیگر ریسپانسیو نمی باشد.

این شرکت 14 روز تست رایگان به کاربران خود ارائه داده است.

6-    ایران سایت ساز

از نظر امکانات این سایت ساز امکانات متنوعی را در اختیار کاربران خود قرار داده است.

بر روی سایت شرکت نمونه قالبهای آماده که کاربران بتوانند انتخاب کنند موجود نمی باشد. تعدادی از نمونه کارهای انجام شده موجود بوده که ریسپانسیو است ولی سایت اصلی شرکت ریسپانسیو تیست.

7-    سایت ساز سی فایو

شعار این شرکت از میان 100 قالب حرفه ای، همین حالا رایگان وب سایت خود را راه اندازی کنید است.

این زمان رایگان 48 ساعت می باشد که بعد از آن باید مبلغ سایت را پرداخت نموده و نسخه خود را کامل نمایید.

تعداد قالبهای این سایت ساز بیش از 90 قالب که ریسپانسیو بود و تنوع بسیار خوبی را در اختیار کاربران قرار می دهد.

امکانات این سایت ساز در سایت شرکت به خوبی مشخص نمی باشد و فقط تعداد کمی از امکانات مشخص بوده است.

8-    سایت ساز کاموا

شعار این شرکت در کمتر از 20 دقیقه سایت خود بسازید است.

14 روز سایت را رایگان در اختیار شما قرار می دهد.

تعداد قالب های این شرکت در حدود 20 قالب می باشد که همگی واکنشرا و ریسپانسیو بوده.

9-    سایت ساز پورتال ساز

این سایت ساز دارای 50 قالب می باشد که تمای قالبها از یک فرمت استفاده شده و بیشترین تغییر در رنگ بندی آن می باشد.

بخاطر نبودن دموی آنلاین ریسپانسیو بودن این قالبها مشخص نمی باشد اما نمونه کارهای این شرکت ریسپانسیو نمی باشد.

     10- سایت ساز زرین

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

منبع : پرتال کاج

  • ndt web
۰۴
اسفند
۹۵

چندی قبل مطلب «نرمال سازی اطلاعات کاربران در حین ثبت نام» را در سایت جاری مطالعه کردید. پیاده سازی یک چنین قابلیتی به صورت توکار در ASP.NET Core Identity پیش بینی شده‌است. همچنین تمام اعتبارسنج‌های نام‌های کاربران، کلمات عبور آن‌ها، ایمیل‌های آن‌ها و غیره را نیز می‌توان سفارشی سازی کرد و بجای سرویس‌های پیش‌فرض آن‌ها معرفی و جایگزین نمود.


سفارشی سازی نرمال سازها 


اگر به طراحی جداول ASP.NET Core Identity دقت کنید، تعدادی فیلد اضافی حاوی کلمه‌ی Normalized را هم مشاهده خواهید کرد. برای مثال: 



  • ndt web