рдЕрд╕реНрд╡реАрдХрд░рдг!рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВ рдПрдХ рдЖрджрд░реНрд╢ рдХреИрдкреНрдЪрд╛ рдХрд╛ рдбреЗрд╡рд▓рдкрд░ рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рддрд╛, рд╕рд╛рде рд╣реА рдХреБрдЫ рдирдпрд╛ рдХрд░рдиреЗ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░рдХ рднреАред рдпрд╣рд╛рдВ рдЬреЛ рдХреБрдЫ рднреА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рд╡рд╣ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╢реИрдХреНрд╖рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдФрд░ рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдФрд░ рд╣рд╛рдВ, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреИрдкреНрдЪрд╛ рд▓рд┐рдЦрдирд╛ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рд╣реИред
рдпрд╣ рд╕рдм рдХреИрд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ
рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореИрдВрдиреЗ ASP.NET MVC 3 рдкрд░ рдЕрдкрдиреА рдЦреБрдж рдХреА рдПрдХ рдЫреЛрдЯреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдЗрд╕рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдЧрдВрддреБрдХ рдЗрд╕рдореЗрдВ рдЕрдкрдиреЗ рд╕рдВрджреЗрд╢ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдмрд╛рдж рдореЗрдВ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрди рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ (рдЬреЛ рдЗрд╕ рднреНрд░рд╛рдордХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рдкреАрдЫреЗ рдХреНрдпрд╛ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ - рд▓рд┐рдВрдХ рд╣реЛрдЧрд╛ рдЕрдВрдд рдореЗрдВ)ред
рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЪреВрдВрдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рд╕реНрдкреИрдорд░реНрд╕ рдФрд░ рдЕрдиреНрдп рдЕрдкреНрд░рд┐рдп рд╡реНрдпрдХреНрддрд┐рддреНрд╡реЛрдВ рд╕реЗ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рдХреИрдкреНрдЪрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЬреЛ рдЪреАрдЬ рдЖрдИ рд╡рд╣ рдереА Google рдХрд╛ ReCaptchaред рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЕрдВрддрддрдГ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рд░рд╛рдХреНрд╖рд╕ рдореЗрд░реЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░реНрдпрд╛рдкреНрдд рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░реВрд╕реА-рднрд╛рд╖реА (рдХреБрдЫ рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХреЗрд╡рд▓ рдорд╢реАрди рджреНрд╡рд╛рд░рд╛ рдкрдардиреАрдп рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдкрдврд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ, рдореИрдВ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдПрдорд╡реАрд╕реА 3 рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХреБрдЫ рднреА рдирд╣реАрдВ рдорд┐рд▓рд╛, рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдФрд░ рд╡рд┐рдиреАрддред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рдпрдорд╛рд╡рд▓реА рдереА, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рддрд░рд╣ рдореИрдВрдиреЗ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди "рд▓рд┐рдпрд╛ рдФрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛" рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛
рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░реЗрдВ рдЕрдкрдирд╛ рдХреИрдкреНрдЪрд╛ рд▓рд┐рдЦреЗрдВред
рд╡рд┐рдЪрд╛рд░
рддреИрдпрд╛рд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдЦреЛрдЬ рдиреЗ рдореБрдЭреЗ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рджрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдХреИрдкреНрдЪрд╛, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рд╣рдо рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ (рдЪрд┐рддреНрд░ рдореЗрдВ рд╕рд╛рдзрд╛рд░рдг рдЪрд░рд┐рддреНрд░ рдорд╛рдиреНрдпрддрд╛), рдореИрдВ рдЗрд╕рдХреА рдорд╢реАрди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреА рд╕рд╛рджрдЧреА рдХреЗ рдХрд╛рд░рдг рдЧреБрдгрд╡рддреНрддрд╛ рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реВрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЭреЗ рдлрд┐рд░ рд╕реЗ рдкрдврд╝рдиреЗ рдХреА рдХрдард┐рдирд╛рдИ рдпрд╛ рдХрдордЬреЛрд░ рдкреНрд░рддрд┐рд░рдХреНрд╖рд╛ рдХреЛ рдЪреБрдирдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдХреИрдкреНрдЪрд╛ рдХреЛ рдереЛрдбрд╝рд╛ рдЧреИрд░-рдорд╛рдирдХ рдмрдирд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЕрд░реНрдерд╛рддреН рдЫрд╡рд┐ рдкрд░ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдЧрд┐рдирддрд╛ рд╣реИ рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдорд╛рдирдХ рдХреИрдкреНрдЪрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдпреЛрдЧ рдФрд░ рдЕрдВрддрд░ рдХреЗ рдмрдЬрд╛рдп рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдкрд╛рда рдХрд╛ рд╕реНрдерд╛рди рд▓реЗрдВрдЧреЗ, рдЬреЛ рдПрдХ рдЧрд▓рдд рдкрд░рд┐рдгрд╛рдо рд╣реЛрдЧрд╛ред рдареАрдХ рд╣реИ, рдЕрдЧрд░ рд╡реЗ рдЗрд╕ рдХреИрдкреНрдЪрд╛ рдХреЗ рддрд╣рдд рдЕрдкрдирд╛ рдмреЙрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрдЪрд╛рдПрдЧрд╛ред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди
рдЬрд▓реНрджреА рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ред рджреЛ рдмрд╛рд░ рд╕реЛрдЪрдиреЗ рдХреЗ рдмрд┐рдирд╛, рдореИрдВрдиреЗ рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдПрдХ рдирдпрд╛ рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ (рдПрдХ рдПрдХрд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ dll рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрдкреНрдЪрд╛ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░реА рдЕрдЪреНрдЫреА рдлреЙрд░реНрдо рдХреА рднрд╛рд╡рдирд╛ рдиреЗ рдореБрдЭреЗ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╡реНрдпрд░реНрде рдирд╣реАрдВ)ред рдЗрд╕рдореЗрдВ, рдореИрдВрдиреЗ HtmlHelper рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЧ рдмрдирд╛рдпрд╛ред рдкреВрд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рддрдм рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ - SimpleMvcCaptchaред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╕рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИред рд╕рд╣рд╛рдпрдХ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рджреЛ рдСрдкрд░реЗрдВрдб рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдПрдХ рдСрдкрд░реЗрд╢рди (рдЕрдм рддрдХ рдХреЗрд╡рд▓ + рдпрд╛ -) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдкрд░рд┐рдгрд╛рдо рдХреА рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред рддрдм рдХрд╛рдиреЛрдВ рд╕реЗ рджреЛ рдЭрдЧрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдХреИрдкреНрдЪрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рд╣рд╛рдпрдХ рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ img рдЯреИрдЧ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЫрд╡рд┐ рдХрд╛ рд╕реНрд░реЛрдд рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдВрддреНрд░рдХ рдХреА рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реЛрдЧреА, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗред рд╣рдорд╛рд░реЗ рдХрд╛рди рдХреЗ рд╕рд╛рде рджреВрд╕рд░рд╛ рд╕рдВрдХреЗрдд - рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдмрд╛рдж рдХреА рдкреЛрд╕реНрдЯрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд╕рд░реНрд╡рд░ рдкрд░ рд╣рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХреИрдкреНрдЪрд╛ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛред
рдкрд╣рд▓реЗ рддреЛ рдореИрдВ рд╕рдореГрджреНрдз рдЕрдиреБрднрд╡ рдХреА рдХрдореА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдереЛрдбрд╝рд╛ рдЧреИрд░-рдорд╛рдирдХ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреИрдкреНрдЪрд╛ рдЬреЛ рдореИрдВрдиреЗ рдкрдврд╝рд╛ рд╣реИ рдЙрдирдХреЗ рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдХреИрд╢ рдпрд╛ рд╕рддреНрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдореБрдЭреЗ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╕рдВрдж рдирд╣реАрдВ рдЖрдпрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкреГрд╖реНрда рдХреЗ HTML рдХреЗ рдЕрдВрджрд░ рдСрдкрд░реЗрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдПрдХ рдЫрд┐рдкреЗ рд╣реБрдП рдлрд╝реАрд▓реНрдб рдореЗрдВ рдХреИрдкреНрдЪрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рд▓реЗрдХрд┐рди рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдирд╣реАрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдИрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЬрд▓реНрдж рд╣реА рдореБрдЭреЗ рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреА рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдмреЙрдЯ рдХреЛ рддрд╕реНрд╡реАрд░ рдХреЗ рд╣реИрд╢ рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдо рджреЛрдиреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рд╕реНрдерд╛рдпрд┐рддреНрд╡ рдХреЛ рддреБрд░рдВрдд рдирд╖реНрдЯ рдХрд░ рджреЗрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдлрд┐рд░ рднреА рдмрд╣реБрдордд рдХреЗ рдорд╛рд░реНрдЧ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд┐рдпрд╛ред
рд╕рддреНрд░ рдЪрд┐рддреНрд░ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдкрд╛рда рдХреЗ рд▓рд┐рдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд╛рда рдпреБрдХреНрдд рдПрдХ рдЫреЛрдЯреА рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИред рдлрд┐рд░ рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рджреЛ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рд╕рддреНрдпрд╛рдкрди рдХреЗ рджреМрд░рд╛рди рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдм рдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдореБрдЭреЗ рдорд┐рд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ, рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг рдХреЛ рд╡рд┐рд╢реЗрд╖ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЬреИрд╕реЗ .axd, .ashx рдкрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рджреЗрдВред рдпрд╣рд╛рдВ рдореБрдЭреЗ рдирд┐рд░реНрдгрдп рдХреА рд╢реБрджреНрдзрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╣ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдкрд░ рдЖрд▓реЛрдЪрдирд╛ рдФрд░ рд░рдЪрдирд╛рддреНрдордХ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВред
public class CaptchaController : Controller { public FileContentResult GetImage(string id) { return File(CaptchaUtils.GetImage(id), "image/gif"); } }
рд╕рддреНрдпрд╛рдкрди рднреА рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
рдХреНрдпрд╛ рд╣реБрдЖ?

рдЗрд╕ рддрд░рд╣ рдХреИрдкреНрдЪрд╛ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╣рд╛рдпрдХ рдЕрдВрдХрдЧрдгрд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░рдВрдЧ рдХреЗ рд╕рд╛рде) рдХреЗ рдкрд╛рда рдХреЗ рд╕рд╛рде рдПрдХ рдЫрд╡рд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдкрд╛рда рдХреЗ рд╕рд╛рде + рдФрд░ - рдСрдкрд░реЗрдЯрд░ рдХреЛ рднреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рдмрджрд▓рддрд╛ рд╣реИ (рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ), рдФрд░ рдЙрддреНрддрд░ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд╖реЗрддреНрд░ рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рд╣рд░ рдХрд┐рд╕реА рдХреА рддрд░рд╣ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ "рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдЧреНрд░рд╛рд╣рдХ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
<div class="smc-captcha"> <img src='/Captcha/GetImage/08a75516-f1ed-41ca-a926-724a268f171e' alt='captcha' class='smc-img-captcha' ><br/> <input type='hidden' name='captchaId' value='08a75516-f1ed-41ca-a926-724a268f171e' /> <input type='text' name='captchaAnswer' class='smc-input-result' /> </div>
рдЕрдиреБрдХреВрд▓рди
рдХреИрдкреНрдЪрд╛ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрдкрдХреЗ ASP.NET MVC рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ web.config рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗ, рдЖрдк рдЫрд╡рд┐ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ, рдлрд╝реЙрдиреНрдЯ рдЖрдХрд╛рд░ рдФрд░ рдкреНрд░рдХрд╛рд░, + рдФрд░ - (рдКрдкрд░ рдЪрд┐рддреНрд░ рддреАрд╕рд░рд╛ рдлреНрд░реЗрдо рд╣реИ) рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкрд╛рда рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛, рдЪрд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдирд╛рдоред рдЖрдк рд╕рдВрдмрдВрдзрд┐рдд рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдХреЗ div, img рдФрд░ imput рддрддреНрд╡реЛрдВ рдХреЗ CSS рдЧреБрдгреЛрдВ рдХреЛ рднреА рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд
рдЕрдм рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд╣реИрдмрд░ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕рдХреЗ рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдУрдкрди рд╕реЛрд░реНрд╕ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рд╣реИред рд╣рд╛рдВ, рдореИрдВрдиреЗ рдЗрд╕ рдХреИрдкреНрдЪрд╛ рдХреЛ рдЕрдкрдиреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЗрд╕реЗ рдмрд╛рдХреА рд╕рдореБрджрд╛рдп рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╡рд┐рдХрд╛рд╕ рдЕрдиреБрднрд╡ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рджреЛрдЧреБрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рдЧрдпрд╛ рд╣реИред рд╕рднреА рдХреЛрдб, рд╡рд┐рд╡рд░рдг рдФрд░ рдкреНрд░рд▓реЗрдЦрди GPLv2 рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд
http://simplemvccaptcha.codeplex.com/ рдкрд░ рдХреЛрдбрдкреНрд▓реЗрдХреНрд╕ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЖрдУ, рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЛ, рдЙрдкрдпреЛрдЧ рдХрд░реЛред
рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ
рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЫреЛрдЯрд╛ рд╕рд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ ASP.NET MVC 3 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╕рд╛рдЗрдЯреЗрдВ рдмрдирд╛рдиреЗ рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рд╕рд░рд▓ рдХреИрдкреНрдЪрд╛ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдкрд╣рдЪрд╛рдирдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдмреЙрдЯ рд╕реЗ рдмрдЪрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
PS рдФрд░ рдЬрд┐рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмрд╛рдд рдХреА рдереА, рдЙрд╕реЗ
"рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддрдереНрдп" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣рд╛рдБ рдЕрднреА рддрдХ рдХрдИ рддрдереНрдп рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐, рдЖрдкрдХреЗ рд╕рдорд░реНрдерди рд╕рд╣рд┐рдд, рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдЧреА!
рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рддрдереНрдп рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрда рдкрд░ рдХреИрдкреНрдЪрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред рд╣рдо рд╡рд┐рдирдореНрд░ рдирд┐рд╡реЗрджрди рдХрд░рддреЗ рд╣реИрдВ - рдпрджрд┐ рдЖрдкрдХреЛ рдХреИрдкреНрдЪрд╛ рдпрд╛ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рдмрдЧ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рддреБрд░рдВрдд рддреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░реЗрдВред рдмреЗрд╣рддрд░ рд╣реИ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗред рдЪрд▓реЛ рд░рдЪрдирд╛рддреНрдордХ рд╣реЛред