همچنانکه می دانید Captcha در فرم های ورود اطلاعات مورد استفاده قرار می گیرد. منظور از استفاده از آن تشخیص تکمیل کننده فرم مابین انسان و ماشین (ربات) می باشد.
برای فراخوانی آن به روش زیر می توان عمل کرد. ابتدا یک تگ ایمیج به همراه یک text box در فرم ورودی اطلاعات خود مثلا ویو رجیستر قرار دهید و کنترل و اکشن زیر را داخل تگ ایمیج فراخوانی کنید.
|
<li> @Html.Label("کد امنیتی") <input type="text" size="10" name="CaptchaAnswer" autocomplete="off" /> <img src='@Url.Action("GetCaptcha", "Captcha")' alt='Captcha' /> </li> |
سپس در کنترل مورد نظر خود مثلا در کنترل Account ، اکشن Register را به این نحو تغییر دهید.
|
public ActionResult Register(RegisterModel model, string CaptchaAnswer) { if (ModelState.IsValid) { if (PHDILib.Verify.Captcha(CaptchaAnswer)) { //Valid ViewBag.Message = "کد امنیتی معتبر است!"; } else { //Invalid ViewBag.Message = "کد امنیتی نامعتبر است!"; } |
توجه داشته باشید که باید PHDILib را در کنترل خود ایمپورت کنید و البته قبل از آن PHDILib.dll را باید در رفرنس پروژه اضافه کرده باشید
MS SQL Server Replication
در این نوشتار به نکاتی از رپلیکیشن بین دو سکیول سرور اشاره خواهدشد. فرض بر آن است که دو تا سرور روی اینترنت و با آی پی های متفاوت هستند , SQL Server 2008 R2 نیز می باشد.
۱- چون رپلیکیشن بین دو سرور از نامهای مجازی یعنی Alias Name استفاده می کنند لذا باید تنظیمات آنها صورت گیرد.
- برای اینکار از Start برنامه SQL ServerConfiguration Manager را انتخاب کنید
- از سمت چپ SQL Native Client 10.0 Configuration را باز کنید
- روی Alias کلیک کنید
- سمت راست رایت کلیک کنید و بر اساس آی پی ها اسامی مجازی را برای سرورها تعریف کنید مثلا برای یک سرور اینگونه است:
-
|
برای سرور 1 Alias Name : Server1 port No: 1433 Protocol: TCP/IP Server: x.x.x.x برای سرور2 Alias Name : Server2 port No: 1433 Protocol: TCP/IP Server: x.x.x.x |
- کلید OK را زده و خارج شوید
۲- ساخت Publication: حالا Configuration manager را ببندید و MS SQL Server Management Studio را باز کنید و به یکی از سرورها کانکت شوید.
- Replication را باز کنید
- روی منوی Local Publications کلیک راست کنید.
- New Publication را انتخاب کنید
- Next را بزنید
- دیتابیس مورد نظر را انتخاب کنید و Next را بزنید
- نوع Publication Type را انتخاب کنید و Next را بزنید
- از دیتابیس جدول و فیلدهای مورد نظر را انتخاب کنید و Next را بزنید
- اگر فیلتری مورد نظر نیست کلید Next را بزنید
- در ویندوی بعدی می توانید زمانبندی ها را تعیین کنید و اگر نخواستید کلید Next را بزنید
- در ویندوی بعدی می توانید تعیین کنید که اجرای ایجنت تحت اکانت ویندوز باشد یا تحت اکانت SQL Server Account باشد. مثلا اکانت ویندوز را انتخاب و بعنوان نمونه این را وارد کنید myserver\administrator و پسورد آنرا وارد کنید و کلید Ok را بزنید
- در اینجا می توانید کلید Finish را بزنید ولی اگر بخواهید از پابلیکیشن ساخته شده اسکریپت تهیه کنید می توانید به صفحه بعدی بروید. هرچند اسکریپت را بعدا هم می توانید به طریق دیگر تهیه کنید.
- کلید Finish را بزنید و نامی دلخواه برای پابلیکیشن بدهید مثلا myTest1 و کلید Finish را بزنید تا پابلیکیشن ساخته شود.
- اگر وارد ویندوی ساخت اسکریپت شده باشید کلید Next را بزنید تا به ویندوی بعدی برود تا آنجا محل و اسم اسکریپتی که قرار است ساخته شود تعیین کنید. اسکریپت با پسوند sql خواهد بود که می توانید داخل SQL Server اجرا کنید.
۳- ساخت Subscription
- روی Publication ساخته شده کلیک راست کنید و منوی New Subscription را انتخاب و در ویندوی بعدی کلید Next را بزنید
- در ویندوی بعدی نشان داده خواهد شد که از چه Publication ای و چه دیتابیسی انتخاب شده اند. البته همانجا می توان انتخاب ها را عوض کرد اگر نیازی به تعویص نیست می توانید کلید Next را بزنید
- در ویندوی بعدی هم کلید next را کلیک کنید
- در ویندوی بعدی روی کلید Add Subscriper کلیک کنید و Add SQL Server Subscriber را انتخاب کنید
- در ویندوی بعدی سرور دوم را انتخاب یا Server Name اش را وارد کنید. در واقع اینجا باید Alias Name ای را که در مرحله ۱ ساخته بودید وارد کنید مثلا server2
- برای Authentication هم Sql Server Authentication را انتخاب و Login کنید.
- در ویندوی بعدی نام دو تا سرور را خواهید دید که تیک سرور دوم زده شده است. از مقابل آن جدول دلخواهی را که می خواهید رپلیکیشن با آن انجام شود انتخاب کنید و کلید Next را بزنید
- در ویندوی بعدی روی کلید … بزنید تا بتوانید مشابه قبل برای Distributor Agent اکانت و پسورد را وارد کنید.
- کلید Ok را بزنید تا به صفحه قبل باز گردید. ملاحظه خواهید کرد که در ستون های Connection to Distributor و Connection to Subscriber پر شده اند.
- اگر خواسته باشید بقیه مراحل بصورت پیش فرض پر شوند می توانید همینجا کلید Finish را بزنید. اگر نه می توانید کلید Next را بزنید تا در مراحل بعد مثلا بتوانید فایل اسکریپت را تولید کنید
یک تصویر از مکانیزم و کارکرد Snapshot Replication

Snapshot
How to mapping or convert a model to a view model
برای نگاشت، مپ یا کانورت یک مدل به یک ویو مدل به شکل زیر عمل می کنیم.
ابتدا دستور زیر را در global.asax وارد می کنیم
|
protected void Application_Start() { //... AutoMapperWebConfiguration.Configure(); } |
سپس از فولدر Model داخل فایل AutoMapperWebConfiguration.cs دستورات زیر را می نویسیم
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
using Automapper; . . . public class AutoMapperWebConfiguration { public static void Configure() { ConfigureMyModelMapping(); } private static void ConfigureMyModelMapping() { Mapper.CreateMap<MyModel, MyViewModel>(); } } |
توجه داشته باشید که باید حتما automapper.dll را به رفرنس ها وارد کرده باشید. برای این کار می توانید از منو های VS آنرا بصورت آنلاین دریافت و در پروژه اعمال نمایید
Tools > Library Package Manager > Manage NuGet Packages for solution
و سپس بصورت Online، Automapper را سرچ کنید و بعد از پیدا کردن Install کنید.
و در ادامه
سپس در صورت نیاز به استفاده از آنها داخل یک Action مثلا Details می نویسیم
|
private MyDBContext db = new MyDBContext(); public ActionResult Details(int id = 0) { MyModel myModel = db.MyModel.Find(id); var myViewModel = new MyViewModel(); AutoMapper.Mapper.Map(myModel, myViewModel); return View(myViewModel); } |