نظرات مطالب
چک لیست تهیه یک برنامه ASP.NET MVC
ممنون
بسیار عالی، امیدوارم باز هم از این گونه مطالب (کار هایی که خودتون در پروژه هاتون اعمال می‌کنید و انجام می‌دهید) در وب سایت درج کنید
نظرات مطالب
مروری بر کدهای کلاس SqlHelper
استاد من در یک وب سایت از متد های استاتیک استفاده کردم ولی زمانی که تعداد کاربرام خیلی زیاد شدند تداخل اطلاعات به وجود اومد ولی زمانی که اونا رو از حالت استاتیک خارج کردم دیگه همچین مشکلی به وجود نیامد.
پاسخ به بازخورد‌های پروژه‌ها
خطای Payment Is Not Valid
متاسفانه از دیروز اینجا وب سایت پیغام خطایی میداد و پیام خصوصی که شما فرستادید رو همچنان نتونستم دریافت کنم.
لطفا یکبار دیگه کدها رو بفرستید.  
نظرات مطالب
Full Text Search و Rank فیلدهای بازیابی شده
با سلام و تشکر. من متن چند کتاب رو به صورت Full Text ذخیره کرده ام، اما مشکلی که دارم این هستش که وقتی به دنبال کلمه ای می‌گردم نیاز دارم به جز نتایج آماری تکرار آن ها، جمله‌ی مربوطه یا چند کلمه قبل و بعد از اون رو هم بازیابی کرده و به کاربر نشان دهم. بسیار ممنون می‌شم راهنمایی بفرمایید.
نظرات مطالب
روش اتصال دومین‌های ir. به یک DNS Server
از قدیم گفتن انسان زمانی قدر یک نعمت رو خوب میدونه که از دستش بده. مدتی بود که سایت از دسترس خارج شده بود و من ایمیل رو چک نکرده بودم. هر چی جستجو هم می‌کردم فایده ای نداشت و خیلی نگران سلامتی آقای نصیری بودم تا اینکه از طریق اکانت ایشان در stackoverflow متوجه دامنه جدید شدم. به هر حال از زحمات آقای نصیری در تمام این سالها تشکر فراوان را دارم و بخاطر تمام آموزش‌های بدون چشم داشت ایشان در این سالهای متمادی از خداوند متعال آرزوی موفقیت و پیشرفت روز افزون توام با سلامتی را می‌کنم. کاش در سایت قسمتی می‌گذاشتید برای donate کردن. البته دانش شما قیمت نداره اما راهی است تا اگر کسی دوست داره برای بخشی از هزینه‌های سایت دونیت کنه.
نظرات مطالب
ASP.NET MVC #13
سلام آقای نصیری خسته نباشید
من الان واسه ثبت کاربر توی دیتابیس یه کلاس دارم به اسم CustomProfile که تمامی خصوصیت‌های یک کاربر رو توی یه شیئ از این کلاس میریزم و بعد توی کدهای لایه مدل، این شیئ رو توسط کلاس Membership و ProfileBase خود دات نت توی پایگاه داده میریزیم. الان منظور شما اینه که من باید برای ویرایش یک کلاس CustomProfile دیگه با همون مشخصات بسازم و متد اعتبار سنجی برای Username اون رو یه متد دیگه قرار بدم ؟ ببینید کدهای من اینه:
public class CustomProfile
    {
        [Required(ErrorMessage="*")]
        [StringLength(50)]
        [System.Web.Mvc.Remote(action: "CheckUserName",
                                       controller: "User",
                                       HttpMethod = "POST",
                                       ErrorMessage = "این نام کاربری وجود دارد")]
        public string Username{ get; set; }
        [Required(ErrorMessage = "*")]
        public string Password{ get; set; }
        [Required(ErrorMessage = "*")]
        public string FirstName{ get; set; }
        [Required(ErrorMessage = "*")]
        public string LastName{ get; set; }
        
        [Required(ErrorMessage = "*")]
        [StringLength(10, ErrorMessage = "کدملی باید 10 رقم باشد")]
        public string NationalCode { get; set; }
        [Required(ErrorMessage = "*")]
        public string Address { get; set; }

        [RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*",
                           ErrorMessage = "آدرس ایمیل معتبر نیست")]
        [System.Web.Mvc.Remote(action: "CheckEmail",
                                       controller: "User",
                                       AdditionalFields = "Username",
                                       HttpMethod = "POST",
                                       ErrorMessage = "این ایمیل وجود دارد")]
        public string Email{ get; set; }

        [StringLength(11, ErrorMessage = "تلفن باید 11 رقم باشد")]
        public string PhoneNo{ get; set; }

        [StringLength(11, ErrorMessage = "موبایل باید 11 رقم باشد")]
        public string MobileNo{ get; set; }
        
        
        public string[] Roles{ get; set; }
        
        public string LastActivityDate{ get; set; }
        public string LastLoginDate { get; set; }
        public string CreationDate { get; set; }
        public bool IsLockedOut{ get; set; }
    }
این کد کلاسم بود. من توی View هام اومدم و این کلاس را به عنوان ViewModel خودم قرار دادم. و وقتی فرم Create و یا Edit رو Submit میکنم متد اعتبار سنجی من وارد عمل میشه
اینم کدViewها:
@model Sama.Models.CustomProfile
@{
    ViewBag.Title = "Create";
    Layout = "~/Views/Shared/_Layout.cshtml";
    
}
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
@using (Html.BeginForm(actionName: "Create", controllerName: "User"))
    {
        @Html.ValidationSummary(true)
     
        <fieldset>
            <legend>کاربر جدید</legend>
            <div>
                <table>
                    <tr>
                        <td>
                            <div>
                                @Html.LabelFor(model => model.Username, "نام کاربری")
                            </div>
                        </td>
                        <td>
                            <div>
                                @Html.EditorFor(model => model.Username)
                                @Html.ValidationMessageFor(model => model.Username)
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <div>
                                @Html.LabelFor(model => model.Password, "کلمه عبور")
                            </div>
                        </td>
                        <td>
                            <div>
                                @Html.PasswordFor(model => model.Password)
                                @Html.ValidationMessageFor(model => model.Password)
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <div>
                                @Html.LabelFor(model => model.FirstName, "نام")
                            </div>
                        </td>
                        <td>
                            <div>
                                @Html.EditorFor(model => model.FirstName)
                                @Html.ValidationMessageFor(model => model.FirstName)
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <div>
                                @Html.LabelFor(model => model.LastName, "نام خانوادگی")
                            </div>
                        </td>
                        <td>
                            <div>
                                @Html.EditorFor(model => model.LastName)
                                @Html.ValidationMessageFor(model => model.LastName)
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <div>
                                @Html.LabelFor(model => model.NationalCode, "کد ملی")
                            </div>
                        </td>
                        <td>
                            <div>
                                @Html.EditorFor(model => model.NationalCode)
                                @Html.ValidationMessageFor(model => model.NationalCode)
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <div>
                                @Html.LabelFor(model => model.Email, "ایمیل")
                            </div>
                        </td>
                        <td>
                            <div>
                                @Html.EditorFor(model => model.Email)
                                @Html.ValidationMessageFor(model => model.Email)
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <div>
                                @Html.LabelFor(model => model.PhoneNo, "تلفن")
                            </div>
                        </td>
                        <td>
                            <div>
                                @Html.EditorFor(model => model.PhoneNo)
                                @Html.ValidationMessageFor(model => model.PhoneNo)
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <div>
                                @Html.LabelFor(model => model.MobileNo, "موبایل")
                            </div>
                        </td>
                        <td>
                            <div>
                                @Html.EditorFor(model => model.MobileNo)
                                @Html.ValidationMessageFor(model => model.MobileNo)
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            <div>
                                @Html.LabelFor(model => model.Address, "آدرس")
                            </div>
                        </td>
                        <td>
                            <div>
                                @Html.TextAreaFor(model => model.Address, 5, 30, null)
                                @Html.ValidationMessageFor(model => model.Address)
                            </div>
                        </td>
                    </tr>
                    <tr>
                        <td>
                            نقش‌ها </td>
                        <td>
                            @Helper.CheckBoxList("Roles", (List<SelectListItem>)ViewBag.Roles)
                        </td>
                    </tr>
                    <tr>
                        <td>
                        </td>
                        <td>
                            <input type="submit" value="ذخیره" class="btn btn-primary" />
                        </td>
                    </tr>
                </table>
            </div>
        </fieldset>
    
    }
این View برای Create بود و برای Edit هم مشابه همینه
حالا اگر من درست متوجه شده باشم باید برای Edit ، از یک ViewModel دیگه مثلا CustomProfileEdit استفاده کنم و اونجا متد اعتبار سنجی دیگه ای تعریف کنم. منظور شما همین بود ؟
نظرات مطالب
غیرمعتبر کردن توکن و یا کوکی سرقت شده در برنامه‌های مبتنی بر ASP.NET Core
من اخیرا متوجه شدم که اکثر سایتها این مشکلو دارن. از جمله سایتهایی که خودم با ام وی سی یا کور نوشتم. حتی جالبه که بعد از لاگ اوت هم با کپی کردن کوکی میشه لاگین شد!!
توی یکی از پروژه هام که از نسخه قدیمی احراز هویت (Form Authentication) استفاده کردم دقیقا این مشکل هست. حتی بعد از فراخوانی FormAuthentication.SignOut() هم باز میشه با ساختن کوکی لاگین به صورت دستی توی کروم، وارد شد!
توی استک این قطعه کد رو گذاشته بودن که تست کردم ولی بازم حل نشد! 
FormsAuthentication.SignOut();
Session.Abandon();

// clear authentication cookie HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, "");
cookie1.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie1);

// clear session cookie (not necessary for your current problem but i would recommend you do it anyway) SessionStateSection sessionStateSection = (SessionStateSection)WebConfigurationManager.GetSection("system.web/sessionState");
HttpCookie cookie2 = new HttpCookie(sessionStateSection.CookieName, "");
cookie2.Expires = DateTime.Now.AddYears(-1);
Response.Cookies.Add(cookie2);

FormsAuthentication.RedirectToLoginPage();

اصلا چرا این مشکل وجود داره؟ چرا بعد از خروج، سشن کاربر حذف نمیشه؟
اشتراک‌ها
آموزش عملی UI

آموزش عملی  html, css,javascript,jquery , ...

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

آموزش عملی  UI
نظرات مطالب
OpenID چیست؟
نقطه شروع یادگیری من در برنامه نویسی وب، پروژه رایگان شما جناب آقای استاد صابر فتح الهی بود.
بعد از اون هم که با سایت آقای دلشاد آشنا شدم و اینک سایت فوق العاده پربار جاری به همت تمام عزیزان.
و باز هم الان دارم از شما آقای فتح الهی چیز یاد میگیرم.
نظرات مطالب
فعال سازی قسمت ارسال فایل و تصویر ویرایشگر آنلاین RedActor در ASP.NET MVC
خیر. احتمالا به این علت که آنچنان مرسوم نیست از چندین قلم در وب استفاده شود، منهای CSS اصلی سایت و تعریف قلم‌های اصلی برای هدرها و امثال آن. به علاوه قلم متن نمایش داده شده در صفحات باید تابع CSS سایت باشد نه ادیتور آن.
ولی در کل می‌تونید براش افزونه بنویسید تا اینکار را انجام دهد.