VVontakte рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ MVC 5 рдУрд╡рд┐рди рдкреНрд░рд╛рдзрд┐рдХрд░рдг

рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдПрдорд╡реАрд╕реА 5 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкреНрд░рдореБрдЦ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рд╣реИред "рдЦрд╛рд▓реА" рдкреАрд╡реАрд╕реА 5 рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╕рдордп, рдлреЗрд╕рдмреБрдХ, Google, рдЯреНрд╡рд┐рдЯрд░ рдФрд░ Microsoft рдЦрд╛рддреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдореБрдЭреЗ рддреБрд░рдВрдд рд╕рдордЭ рдореЗрдВ рдЖ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо Vkontakte рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдПрдХ "рдорд┐рдбрд▓рд╡реЗрдпрд░" рдореЙрдбреНрдпреВрд▓ рдерд╛ред рдЗрд╕реЗ "Duke.Owin.VkontakteMieldware" рдХреА рдЦреЛрдЬ рдХрд░рдХреЗ рдирдЧреЗрдЯ рдкреИрдХреЗрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕реНрд░реЛрдд рджреЗрдЦреЗрдВ: github.com/DukeNuken/Duke.Owin.VkontakteMiddleware

рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЙрд▓реНрд▓реВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдФрд░ рдХрдЯрд╛рдирд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрдИ рд▓реЗрдЦ рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдЖрдк рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕реНрд░реЛрддреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдФрд░ рдЕрдм рдореИрдВ рд╕рд╛рдорд╛рдиреНрдп рд╢рдмреНрджреЛрдВ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдереЛрдбрд╝рд╛ рдЗрддрд┐рд╣рд╛рд╕ред рд▓рдЧрднрдЧ 6 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдПрдХ рдмрд╛рд░, рдореЗрд░реЗ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдиреЗ рдореБрдЭрд╕реЗ рд╕рд╛рдЗрдЯ рдкрд░ "/ рдЕрдХрд╛рдЙрдВрдЯ / рд░рдЬрд┐рд╕реНрдЯрд░" рдЬреИрд╕реЗ рд╕реБрдВрджрд░ рд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдерд╛ рдФрд░ рдЪреВрдВрдХрд┐ рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ asp.net рдкрд░ рдерд╛, рдЗрд╕рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рдЙрдкрд╛рдп IIS рдХреЗ рд▓рд┐рдП UrlRrriting рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдерд╛ рдФрд░ рд╕рд╛рдЗрдЯ рдкрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ, рдРрд╕реЗ рд▓рд┐рдВрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЦреБрд▓реЗ рдирд╣реАрдВ рдереЗ, рдЬрд┐рд╕рд╕реЗ рдХреБрдЫ рдЕрд╕реБрд╡рд┐рдзрд╛ рд╣реБрдИред рдЪреВрдВрдХрд┐ Microsoft рдиреЗ mvc рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП UrlRrriting рд▓реЙрдЬрд┐рдХ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рд╛рдЗрдб (рд░реВрдЯрдХреЙрдиреНрдлрд┐рдЧ) рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди (рдмрдВрдбрд▓рдХреЙрдиреНрдлрд┐рдЧ) рдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕рд╛рдЗрдб рдкрд░ рд╣реА рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрд╕реА рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рджреНрд╡рд╛рд░рд╛, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЛ mvc 5 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреНрд▓рд╛рд╕ / App_Start рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ ConfigureAuth рдлрд╝рдВрдХреНрд╢рди (IAppBuilder рдРрдк) рд╣реИред рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЯреНрд╡рд┐рдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рддрдерд╛рдХрдерд┐рдд рдорд┐рдбрд▓рд╡реЗрдпрд░ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреНрдпрд╛ рд╣реИ рдФрд░ рд╡реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ? рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпреЗ рдРрд╕реА рдХреНрд▓рд╛рд╕реЗрд╕ рд╣реИрдВ рдЬреЛ AuthenticationMiddleware рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╣реИрдВред рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдФрд░ рдПрдХ CreateHandler () рд╡рд┐рдзрд┐ рд╣реИред рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рд╣рд░ рдмрд╛рд░ рдкреГрд╖реНрда рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрд╛рдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдгрд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдирд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрджрд▓реЗ рдореЗрдВ 2 рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВред рдЖрдЗрдП рдЙрди рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

1) рд╕рдВрд░рдХреНрд╖рд┐рдд рдУрд╡рд░рд░рд╛рдЗрдб рдЯрд╛рд╕реНрдХ ApplyResponseChallengeAsync () - рдпрд╣ рд╡рд┐рдзрд┐ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рддрд░реНрдХ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рд╡рд╣ 3 рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрджрдо рдЙрдард╛рддрд╛ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ http рдХреЛрдб - 401 (рдСрдЯрд┐рдЬреНрдб рдирд╣реАрдВ рд╣реИ), рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рд╣рд╛рдпрдХ рдпрд╣ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд╛рдЗрдЯ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рдлреЙрд░реНрдо рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ:

рдЫрд╡рд┐

рдЕрд░реНрдерд╛рддреН, рд▓реЙрдЧрд┐рди рдкреГрд╖реНрда рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ Vknotakte рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рдкреВрд░реА рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкреГрд╖реНрда рдпрд╣рд╛рдВ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ , рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

рдкреБрд╖реНрдЯрд┐ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдкрд░ рдореЙрдбреНрдпреВрд▓ рд░рд┐рдЯрд░реНрди рдкреЗрдЬ рдкрд░ рд╡рд╛рдкрд╕ рднреЗрдЬ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд▓рдЧрднрдЧ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ '/ рд╕рд╛рдЗрди-рд╡реЛрдХрдВрдЯреЗрдХ? рдХреЛрдб = 8e40fbe05c7ec232c0' (рдпрд╣ рд░рд┐рдЯрд░реНрди рдкреЗрдЬ рдореЙрдбреНрдпреВрд▓ рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗрдЯ рд╣реИ) рдФрд░ рдЗрд╕ рд╕рдордп рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

2) рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдУрд╡рд░рд░рд╛рдЗрдб async рдЯрд╛рд╕реНрдХ <bool> InvokeAsync () - рдпрд╣ рд╡рд┐рдзрд┐ рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рдЗрд╕рдХреЗ "рдЖрдзрд╛рд░" рд▓рд┐рдВрдХ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдкрд░ рдЯреНрд╡реАрдХреНрд╕ рдХрд░рддреА рд╣реИред рдпрджрд┐ рд╡реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реНрд╡рдпрдВ рд╣реЛрддрд╛ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ VKontakte рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рд╡рд┐рдзрд┐ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдкрд╣рд▓реА рд╡рд┐рдзрд┐ рд╕реЗ '/ signin-vkontakte' рд▓рд┐рдВрдХ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреА рд╣реИред

InvokeAsync рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░, рдкреГрд╖реНрда " oauth.vk.com/access_token " рдЯреНрд╡реАрдХреНрд╕ рдФрд░ рдПрдХ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж Vkontakte API рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИ - рдирд╛рдо рдФрд░ рдЖрдИрдбреАред рдЗрд╕ рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЯрд┐рдХрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрджрд▓реЗ рдореЗрдВ, AuthenticationTicket рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ ReturnEndpointContext рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдФрд░ Microsoft.Owin.Security.AuthenticationManager рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ / рдЕрдХрд╛рдЙрдВрдЯ / рдПрдХреНрд╕рдЯрд░реНрдирд▓реЛрдЧрд┐рди рдХреЙрд▓рдмреИрдХ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдХреЗ рдкрдВрдЬреАрдХрд░рдг рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рдХрд┐рд╕ рдирд╛рдо рд╕реЗ рд╕рд╛рдЗрдЯ рдкрд░ рдкрдВрдЬреАрдХрд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред

рдореИрдВ рдХреБрдЫ рдмрд╛рддреЗрдВ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛:

1) "рдорд┐рдбрд▓рд╡реЗрдпрд░" рдореЙрдбреНрдпреВрд▓ рдХрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕рд╛рдорд╛рдиреНрдп http рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬреЛ рд╢реБрд░реБрдЖрдд рдореЗрдВ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рдЕрдВрдд рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
рдЫрд╡рд┐

2) рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рджреЛ рдкреНрд░рдХрд╛рд░ рд╣реИрдВ - рд╕рд╛рдЗрдЯ рдкрд░ рдкрдВрдЬреАрдХрд░рдг рдФрд░ рдУрд╡рд┐рди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдВрдЬреАрдХрд░рдг, рд▓реЗрдХрд┐рди рдЖрдЦрд┐рд░рдХрд╛рд░ рдЬрдм Vkontakte рдкрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреГрд╖реНрда "/ рдЦрд╛рддрд╛ / рдмрд╛рд╣реНрдпрд▓реЙрдЧ рдХреЙрд▓рдмреИрдХ" рдкрд░ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдкреГрд╖реНрда рдкрд░ рдПрдХ рд╕рдВрджреЗрд╢ рд╣реЛрдЧрд╛ рдХрд┐ рдЙрд╕рдиреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рд╣реИ) рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ, рдирд╛рдо рдФрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдмрдЯрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рда рдХреНрд╖реЗрддреНрд░), рдХреЗрд╡рд▓ рддрдм рдЬрдм рдЖрдк рд░рдЬрд┐рд╕реНрдЯрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рдПрдХ рдирд┐рдпрдорд┐рдд рдЦрд╛рддрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдпрд╣ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдХрд┐ рдпрд╣ "Vkontakte" рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрдЧрд╛ред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ, рдпрд╣ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ

рдЫрд╡рд┐

рдпрд╣реА рд╣реИ, рд╕рд╛рдЗрдЯ рдкрд░ рдУрд╡реЗрди рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЦреБрдж рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдирд┐рдпрдорд┐рдд рдкрдВрдЬреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд▓рд╛рдЗрд╡ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ freemusiclib.com/Account/Login

Source: https://habr.com/ru/post/In202344/


All Articles