Aspnetcore: реи.реи рд░реЛрдбрдореИрдк рдЪрд░реНрдЪрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 25 рдЬреВрди 2018  ┬╖  117рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: dotnet/aspnetcore

2.2 рд░реЛрдбрдореИрдк рдШреЛрд╖рдгрд╛ рдХреЗ рд▓рд┐рдП рдЪрд░реНрдЪрд╛: https://github.com/aspnet/Announcements/issues/307

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд░реЛрдбрдореИрдк рдЕрдЪреНрдЫрд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдФрд░ HTTP 2.0ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрдерд╛рд╕рдВрднрд╡ рджрдпрд╛рд▓реБ рддрд░реАрдХреЗ рд╕реЗ , рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рдердо рдкрдХреНрд╖ Microsoft рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВред IdentityServer4 рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рднрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдПрдХ рд╕рд░рд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдордп рдХрд╣реАрдВ рдФрд░ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд▓рдХреНрд╖реНрдп рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдард┐рди рд╣реИ рдФрд░ IdentityServer рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рд╕рд░рд▓ рдЕрдореВрд░реНрдд рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ IdentityServer рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд▓реЛрдЧ рд╕рд╛рдзрд╛рд░рдг рдЕрдореВрд░реНрддрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ, рд▓реЗрдХрд┐рди рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рд╢рдХреНрддрд┐ рд╣реЛред

рдЕрджреНрдпрддрди

ASP.NET рд╕рдореБрджрд╛рдп рд╕реНрдЯреИрдВрдбрдЕрдк рдореЗрдВ, рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ ASP.NET рдХреЛрд░ рдЯреАрдо рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ рдЯреАрдо рд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХреБрдЫ рдмрдирд╛рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рдм рдпрд╣реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛!

рд╕рднреА 117 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдИрдПрдл рдХреЛрд░ 2.2 рд░реЛрдбрдореИрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

рдИрдПрдл рдХреЛрд░ 2.2 рд░реЛрдбрдореИрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?

https://github.com/aspnet/Announcements/issues/308

рд░реЛрдбрдореИрдк рдЕрдЪреНрдЫрд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдФрд░ HTTP 2.0ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрдерд╛рд╕рдВрднрд╡ рджрдпрд╛рд▓реБ рддрд░реАрдХреЗ рд╕реЗ , рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рдердо рдкрдХреНрд╖ Microsoft рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдЕрд╕рд╣рдордд рд╣реВрдВред IdentityServer4 рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рднрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдПрдХ рд╕рд░рд▓ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдордп рдХрд╣реАрдВ рдФрд░ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд▓рдХреНрд╖реНрдп рдПрдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрдард┐рди рд╣реИ рдФрд░ IdentityServer рдПрдХ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЬрд┐рддрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдПрдХ рд╕рд░рд▓ рдЕрдореВрд░реНрдд рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ IdentityServer рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд▓реЛрдЧ рд╕рд╛рдзрд╛рд░рдг рдЕрдореВрд░реНрддрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреЗрдВ, рд▓реЗрдХрд┐рди рдЬрд░реВрд░рдд рдкрдбрд╝рдиреЗ рдкрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рд╢рдХреНрддрд┐ рд╣реЛред

рдЕрджреНрдпрддрди

ASP.NET рд╕рдореБрджрд╛рдп рд╕реНрдЯреИрдВрдбрдЕрдк рдореЗрдВ, рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ ASP.NET рдХреЛрд░ рдЯреАрдо рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ рдЯреАрдо рд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХреБрдЫ рдмрдирд╛рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рдм рдпрд╣реА рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЕрдЪреНрдЫрд╛ рдХрд┐рдпрд╛!

ASP.NET Core WebHooks рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреА рд╡рд░реНрддрдорд╛рди рдпреЛрдЬрдирд╛рдПрдБ рдХреНрдпрд╛ рд╣реИрдВ?

рдбрд┐рд╕реНрдкреИрдЪрд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдХреНрдпрд╛ рдпрд╣ рддрдм рдорд┐рдбрд▓рд╡реЗрдпрд░ рдореЗрдВ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛? рдореИрдВ
C# public async Task Invoke(HttpContext context, [FromRoute] SomeModel someModel)
[рд╕реЗрдХреНрд╡реЗрд░реА]?

рд╕рд┐рдВрдкрд▓ рдСрде рд╕рд░реНрд╡рд░ рд▓реЗрдХрд┐рди рдпрд╣ рднреА рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдХрдЯрд╛рдирд╛ рд╕рд┐рдВрдкрд▓ рдСрде рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реБрдЖ рдерд╛

рдореИрдВ @ рд░реЗрд╣рд╛рди рд╕рдИрдж рдХреА рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рдкреНрд░рддрд┐рдзреНрд╡рдирд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдорд╛рдВрдЧрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдирдпрд╛ рд╕рд░реНрд╡рд░ рдХрд┐рди рд╕рдЯреАрдХ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЛ рднрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рд╣реИ рддреЛ рд╡реЗрдм рдПрдкреАрдЖрдИ рдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рд╡рд╛рд╣рдХ рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдРрдк рдХреЗ рдореМрдЬреВрджрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рднреАрддрд░ рдорд╛рдиреНрдп рд╣реИ, рддреЛ рдпрд╣ рдареАрдХ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЙрд╕рдХреЗ рдКрдкрд░ рд╕рдм рдХреБрдЫ рд╢рд╛рдпрдж рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА IdentityServer, OpenIddict, рдФрд░ AspNet.Security.OpenIdConnect.Server рдЬреИрд╕реЗ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди рдЬрдЯрд┐рд▓рддрд╛ рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рдХрдИ рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдЖрдк "рдПрдкреАрдЖрдИ рдХреНрд▓рд╛рдЗрдВрдЯ рдЬрдирд░реЗрд╢рди (рд╕реА # рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ)" рдХреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореИрдВ рдЕрдкрдиреА рдХреЛрдгреАрдп рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреАрдЖрдИ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╕реНрд╡рдд: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдирдПрд╕рд╡рд╛рдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдмрд╕ рдЗрддрдиреЗ рдЕрд▓рдЧ рд╕рдВрдпреЛрдЬрди рд╕рдВрднрд╡ рд╣реИрдВ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рдХреЛ рдЦреБрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░реЗ рд╕рд┐рд░ рдХреЗ рдКрдкрд░ рд╕реЗ, рдХреБрдЫ рдЪреАрдЬ рдЬрд┐рд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдФрд░ рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП):

  • рдПрдЪрдЯреАрдкреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рд▓рд╛рдиреЗ рдпрд╛ рдХреЛрдгреАрдп рд╕реЗрд╡рд╛ рдХреЗ рд╕рд╛рде рд╕рд┐рд░реНрдл рдПрдХ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд▓рд╛рдЗрдВрдЯ?
  • рдпрджрд┐ рдпрд╣ рдХреЛрдгреАрдп рд╣реИ, рддреЛ рдЖрдк рдХрд┐рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ (RxJS рдХреЗ рд▓рд┐рдП рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг)?
  • рдЕрд╢рдХреНрдд/рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВрдбрд▓рд┐рдВрдЧ
  • рдПрдирдо рд╣реИрдВрдбрд▓рд┐рдВрдЧ
  • рджрд┐рдирд╛рдВрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЗ рдПрд╕ рджрд┐рдирд╛рдВрдХ рдпрд╛ рдХреНрд╖рдг?
  • рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ, рд╕рддреНрдпрд╛рдкрди рддреНрд░реБрдЯрд┐ рдкреНрд░рдмрдВрдзрди
  • рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ рдЬреЗрдирд░реЗрдЯ рдХреЛрдб рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреИрд╕реЗ рдХрд░реЗрдВ?
  • рдирд╛рдо рдирд┐рд░реНрдорд╛рдг рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рдХреНрд▓рд╛рдЗрдВрдЯ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП xxxDTO рд╕реЗ DTO рднрд╛рдЧ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА OpenAPI рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░)

рдпрджрд┐ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрддрд╛, рддреЛ рдореМрдЬреВрджрд╛ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдореЗрдВ рдпреЗ рд╕реБрдзрд╛рд░/рд╕реБрдзрд╛рд░ рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рд╕реВрдЪреА рдореЗрдВ рд╣реЛрдВрдЧреЗ:

рдореИрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдЙрддреНрдкрд╛рдж рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╡реЛрдЯ рдХрд░рддрд╛ рд╣реВрдВред рд╕реБрд░рдХреНрд╖рд╛ рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рд░рдЦрд░рдЦрд╛рд╡ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рдзрдХреНрдХрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЬреЛ рдХреЛрдИ рднреА рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдЪрд╛рд╣рддрд╛ рд╣реИ рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА IdentityServer4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрдорд┐рдд, рдкрд░реАрдХреНрд╖рдг, рджрд╕реНрддрд╛рд╡реЗрдЬ рдФрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИред рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕реЗрдЯрдЕрдк рдореЗрдВ 5 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реНрдЯрд╛рд░реНрдЯрд░ рдирдореВрдиреЗ, рд╡реАрдбрд┐рдпреЛ рдФрд░ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИрдВред

рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░реНрдп рдХреЛ "рд╢реВрдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди" рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд┐рддрдирд╛ рд╡реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЙрд╕рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдФрд░ рдЕрдзрд┐рдХ рднреНрд░рдо (рдирд╛рдордХрд░рдг рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ) рдЬреЛрдбрд╝ рджреЗрдЧрд╛, рдЬрдмрдХрд┐ рд╡рд░реНрд╖реЛрдВ рддрдХ рд╕рдорд░реНрдерди рдФрд░ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЪреАрдЬ рдмрди рдЬрд╛рдПрдЧреА, рд▓рдЧрд╛рддрд╛рд░ рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХреЛ рджреВрд░ рдХрд░рдирд╛ред рдХреГрдкрдпрд╛ рдЗрд╕ рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рдореИрдВ рднреА рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ рдЖрдИрдЖрдИрдПрд╕ рдЗрди-рдкреНрд░реЛрд╕реЗрд╕ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдЗрд╕ 2.2 рд░реЛрдбрдореИрдк рдкрд░ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХ рдкреНрд░рдореБрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рд╣рдорд╛рд░реА рд░рд┐рд▓реАрдЬрд╝ рд░рдгрдиреАрддрд┐ рдФрд░ рд╢реЗрдбреНрдпреВрд▓ рдХрд╛ рдПрдХ рдкреНрд░рдореБрдЦ рдХрд╛рд░рдХ рд╣реИ рдФрд░ рдЗрд╕реЗ 2.1 рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рдмрд╣реБрдд рдкрд╣рд▓реЗ рд╣реА рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп 2.2 рд╕рдордп рд╕реАрдорд╛ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ред рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рднреВрд▓ рд╣реИ рдФрд░ рдХреЛрдИ рдЕрдиреНрдп рдпреЛрдЬрдирд╛ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: @DamianEdwards рдиреЗ рдЯреНрд╡рд┐рдЯрд░ рдкрд░ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдирд┐рд░реАрдХреНрд╖рдг рдерд╛ (рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ 2.2 рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛рдмрджреНрдз рд╣реИ)ред рдУрд╣!

рдореИрдВ рдЕрдиреНрдп рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рддрд┐рдзреНрд╡рдирд┐рдд рдХрд░реВрдВрдЧрд╛ред рдпрджрд┐ рдЖрдк рдкреНрд░рд╛рдзрд┐рдХрд░рдг/рдиреАрддрд┐ рдореЗрдВ рдирд┐рд╡реЗрд╢ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕реЗ рд╕рд░рд▓ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ OpenIddict рдФрд░ IdentityServer рдХреА рдкрд╕рдВрдж рдХреЗ рд╕рд╛рде рдбреЙрдХреНрд╕ рдФрд░ рдордЪрд╛рди рдореЗрдВ рдирд┐рд╡реЗрд╢ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭреЗрджрд╛рд░реА рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд▓реЗрдХрд┐рди рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдИ рднреА рдХрд╛рдо, рдЪрд╛рд╣реЗ рдХрд┐рддрдирд╛ рднреА рд╕рд░рд▓ рд╣реЛ, рдмрд╕ рднрдпрд╛рдирдХ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдирдХрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ рдФрд░ рдПрд╕реНрдкрдиреЗрдЯ рдЯреАрдо рдкрд░ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд░рдЦрд░рдЦрд╛рд╡ рд▓рд╛рдЧрдд рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рдЕрд▓реЛрдХрдкреНрд░рд┐рдп рджреГрд╢реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ Microsoft Auth рд╕рд░реНрд╡рд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рдЗрдирдкреБрдЯ рдФрд░ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд▓реЛрдЧреЛрдВ рдХреА рдирдЬрд╝рд░реЛрдВ рдореЗрдВ рдмрдирд╛ рд╣реЛред

рд╡рд░реНрддрдорд╛рди рд╡рд╛рд▓реЗ - Id4, OpenIddict - рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрддреНрдХреГрд╖реНрдЯ OSS рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИрдВ, рдФрд░ рдореИрдВ рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдЗрд╕рдХреЗ рдкреАрдЫреЗ MS рдХреЗ рд╕рдорд░реНрдерди рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рдХрднреА рднреА рдПрдХ рдмреБрд░реА рдмрд╛рдд рд╣реЛ рд╕рдХрддреА рд╣реИ ...?

рд▓реЛрдЧреЛрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕рдореВрд╣ рд╕реЗ рдХрд┐рддрдирд╛ рд╕рдорд░реНрдерди рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЗрд╕рдХреА рдПрдХ рд╕реАрдорд╛ рд╣реИ, рдФрд░ рдпреЗ рдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрддреНрдкрд╛рдж рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдлрд╝рд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ MS OSS рдЖрдЪрд╛рд░ рд╕рдВрд╣рд┐рддрд╛ рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдХрд╣рддреА рд╣реИ "рдРрд╕реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдкреНрд░рдЪрд╛рд░ рди рдХрд░реЗрдВ рдЬреЛ рдХрд┐рд╕реА рдРрд╕реА рдЪреАрдЬрд╝ рдХреА рдирдХрд▓ рдХрд░рддреА рд╣реИрдВ рдЬрд┐рд╕реЗ Nuget рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬреЛ рдЖрдХрд╕реНрдорд┐рдХ рд░реВрдк рд╕реЗ рджреЛ-рд╡реНрдпрдХреНрддрд┐ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рдХреБрдЪрд▓ рджреЗрдЧреА рдЬреЛ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрддрд╛ рд╣реИ"ред

рдореБрдЭрдореЗрдВ рдирд┐рдВрджрдХ рдпрд╣ рд╕реЛрдЪрдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛, рдХреБрдЫ рдЕрдВрджрд░реВрдиреА рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдмреНрд░реЙрдХ рдФрд░ рдбреЛрдорд┐рдирд┐рдХ рдХреЛ рдПрдХ рдЦреВрдиреА рдирд╛рдХ рджреЗрдирд╛ рдмрдЧ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕ рд╕реБрдЭрд╛рд╡ рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдереАред рдХреНрдпрд╛ рдЫреЛрдЯреЗ рд╡реНрдпрд╡рд╕рд╛рдпреЛрдВ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдХрднреА рднреА рдПрдПрд╕рдкреА рдЯреАрдо рдХреА рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдХреА рдЖрд▓реЛрдЪрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддрд╛рд╡рд▓реЗ рд╣реЛрддреЗ рд╣реИрдВ?

рдореБрдЭреЗ рдпрд╣ рднреА рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпреВрдЖрдИ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдЬреИрд╕реЗ рд╢реАрд░реНрд╖ рдкрд░ рдХреБрдЫ рдмрдирд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдСрде рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред

рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ JSON-LD 1.1 рдкреБрд╕реНрддрдХрд╛рд▓рдп рд░реЛрдбрдореИрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдЧрд╛ред :)

рджреВрд╕рд░реЛрдВ рдиреЗ рдЬреЛ рдХрд╣рд╛ рд╣реИ рдЙрд╕реЗ рджреЛрд╣рд░рд╛рддреЗ рд╣реБрдП - рдореИрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп IdentityServer4 рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рд╕реЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХрд╛рд░реНрдп рдХреЛ рд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЕрдзрд┐рдХ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдпрджрд┐ рдЕрдВрддрд░рд╛рд▓ рд╣реИрдВ рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдпреЛрдЧрджрд╛рди, рдирдореВрдиреЗ рдФрд░ рд╢реЛрдзрди рдПрдХреАрдХрд░рдг рдмрд┐рдВрджреБрдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдиреНрд╣реЗрдВ рдкрд╛рдЯрдирд╛ рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реЛрдЧрд╛ред рд╢рд╛рдпрдж рдЗрд╕ рд╕реНрдкреЗрд╕ (B2C) рдореЗрдВ рдЕрдкрдиреЗ рдХреНрд▓рд╛рдЙрдб рдСрдлрд╝рд░рд┐рдВрдЧ рдкрд░ рднреА рдХреБрдЫ рдзреНрдпрд╛рди рджреЗрдВ, рдЬреЛ рдПрдХ рднрдпрд╛рд╡рд╣ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд▓рдХреНрд╖реНрдп рдореМрдЬреВрджрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░рд╕рд╛рдж рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ рдФрд░ рдЪреАрдЬреЛрдВ рдХреЛ рд╕рд░рд▓ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рд░реАрд░рд╛рдЗрдЯ рдЯреНрд░реИрдк рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ: "рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рдФрд░ рдереЛрдбрд╝рд╛ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ, рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рджреЗрддрд╛ рд╣реИ! ". рдпрд╣ рдЕрдиреБрднрд╡рд╣реАрди рд╣реИ рдФрд░ n рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рдордп рдореЗрдВ рдореИрдВ рдЖрдк рдкрд░ рдкреИрд╕рд╛ рд▓рдЧрд╛рдКрдВрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдХрдИ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рд╕реЗ рдирд┐рдкрдЯрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ IdentityServer рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИред

рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдЧрд┐рдЯрд╣рдм рдХреЗ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдХреЗ рд╕рд╛рде, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдУрдкрди рд╕реЛрд░реНрд╕ рдХреЗ рдкреНрд░рддрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреЗ рд░рд╡реИрдпреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╛рдлреА рдЪрд░реНрдЪрд╛ рд╣реБрдИ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЦреБрд▓реЗ рдореЗрдВ рдЗрддрдирд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рдЕрдЪреНрдЫрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдирд╛рдЧрд░рд┐рдХ рд╣реЛрдиреЗ рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдореМрдЬреВрджрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд░рд╣рд╛ рд╣реИ рдЬрдм рдпрд╣ рдореМрдЬреВрдж рд╣реИред

рдпрд╣ рдЖрдкрдХреЗ рдЬреИрд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдзрд╛рд░рдХреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ - рдПрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдзрд╛рд░рдХ рдЬреЛ рдореМрдЬреВрджрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдСрдлрд╝рд░рд┐рдВрдЧ рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдирдХрд▓ рдХрд░рддрд╛ рд╣реИ _discourages_ рдпреЛрдЧрджрд╛рди рдЙрди рдкреЗрд╢рдХрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд▓рдЧреНрди рд╣реЛрдиреЗ рдХреЗ рджреМрд░рд╛рди _рдкреНрд░реЛрддреНрд╕рд╛рд╣рди_ рдпреЛрдЧрджрд╛рдиред

рдореИрдВ рднреА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдП рдЬрд╛ рд░рд╣реЗ рдкреНрд░рдпрд╛рд╕ рдХреЗ рдмрд┐рдВрджреБ рдХреЛ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛, рд▓реЗрдХрд┐рди ASP.NET рдХреЛрд░ рдкрд╣рдЪрд╛рди рдХреЗ _management_ рдореЗрдВ рд╕реБрдзрд╛рд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдбреЗрдорд┐рдпрди рдПрдбрд╡рд░реНрдбреНрд╕ live.asp.net рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рд╕реНрдкрд╖реНрдЯ рдереЗ рдХрд┐ рд╣рдореЗрдВ рдЕрдкрдиреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рд░реЛрд▓-рдЕрдк рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди - рдЬрдм рддрдХ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдпрд╛рдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ - ASP.NET рдХреЛрд░ рдЖрдЗрдбреЗрдВрдЯрд┐рдЯреА рдореЗрдВ рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдмрдВрдзрди рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рд░реЛрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рд╣рдорд╛рд░рд╛ рдЕрдкрдирд╛ред рдпрд╣ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рдбрд░рд╛рд╡рдирд╛ рд▓рдЧрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмрдирд╛рдП рдЧрдП рд╕реБрд░рдХреНрд╖рд╛ рдЫреЗрдж рдХреЛ рдЫреЛрдбрд╝рдиреЗ рд╕реЗ рдШрд╛рддрдХ рд░реВрдк рд╕реЗ рдбрд░рддрд╛ рд╣реВрдВред

2.2 рдореЗрдВ рдПрдорд╡реАрд╕реА рд╕реНрддрд░ рд╕реЗ AspNetCore.Http рдЕрдмрд╛рд╕реНрдЯреНрд░рдХреНрд╢рди рддрдХ рд╕рд╛рдордЧреНрд░реА рдлреЙрд░реНрдореЗрдЯрд░реНрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ?

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рдореНрдореЗрджрд╛рд░ рдкреНрд░рдзрд╛рди рдордВрддреНрд░реА рдЗрд╕ рдЖрдЗрдбреЗрдВрдЯрд┐рдЯреА рд╕рд░реНрд╡рд░ рд▓рд╛рдЗрдЯ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рд▓рд┐рдЦ рд╕рдХреЗрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХреЗ рдХрд┐ ASP.NET рдЯреАрдо рдореМрдЬреВрджрд╛ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рдХрд┐рди рдХрдорд┐рдпреЛрдВ рдХреЛ рджреВрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреА рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдЦрдбрд╝рд╛ рд╣реИ, рдЖрдк рдПрдХ рдкрд╣рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдХреБрдЫ рдкреНрд░рд╡рдХреНрддрд╛ рд╣рдЯрд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЬреНрдпрд╛рджрд╛ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдХрд┐рд╕реА рдФрд░ рдиреЗ рдХрд╣рд╛ рд╣реИ, AAD B2C рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рде рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХрд╛ рдПрдХреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдФрд░ MS рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред

рд╕рд╛рде рд╣реА, рдХреНрдпрд╛ рдЖрдкрдиреЗ рдпрд╣ рднреА рд╕реЛрдЪрд╛ рд╣реИ рдХрд┐ @blowdart рдХреЗ рдмрд╛рдж рдПрдХ рдирдпрд╛, рдЧреНрд░рд╛рдЙрдВрдб-рдЕрдк рдкреНрд░рд╛рдорд╛рдгрд┐рдХ рд╕рд░реНрд╡рд░ рдЙрддреНрдкрд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛?

рдПрдХ django рдХреА рддрд░рд╣ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд░реАрд╕реНрдЯрдлреБрд▓ рдПрдкреАрдЖрдИ рд╕рдорд░реНрдерди рд░рдЦрдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рд╣реИ?
Cuz рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╣рд░ рдмрд╛рд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ!

рдореИрдВрдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рдмрдирд╛рдпрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЬреЗрдиреЗрд░рд┐рдХ рд░реАрд╕реНрдЯрдлреБрд▓ рдПрдкреАрдЖрдИ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

https://github.com/0xRumple/dorm-portal/blob/master/DormPortal.Web/Controllers/StudentsController.cs

"рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд╣реВрдВ рдХрд┐ рдЖрдк рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░реНрдп рдХреЛ" рд╢реВрдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди "рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ" рдФрд░ "рдЖрдк рдПрдХ рдкрд╣рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдХреБрдЫ рдкреНрд░рд╡рдХреНрддрд╛ рдХреЛ рд╣рдЯрд╛ рд░рд╣реЗ рд╣реИрдВ", рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЙрддреНрдкрд╛рдж рд╣реИ, рдмрд╣реБрдд рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдореЗрдВ "рд╕рд░рд▓реАрдХреГрдд" рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред

рдмрд╣реБрдд рдЫреЛрдЯреЗ рдкреИрдорд╛рдиреЗ рдкрд░, рд╣рдореЗрдВ рдПрдХ рдФрд░ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ рдЬреИрд╕реЗ

  • https://github.com/Xbaril/BeatPulse , рдЗрд╕рдореЗрдВ рдкреВрд░реНрд╡-рд▓рд┐рдЦрд┐рдд рдЪреЗрдХ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ UI рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ
  • https://www.app-metrics.io/web-monitoring/aspnet-core/health/

рдЗрдирдХреЗ рд╕рд╛рде рдлреАрдЪрд░ рдЕрдВрддрд░ рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдФрд░ 2.2 рдореЗрдВ рдХреНрдпрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

@ 0xRumple ApiController рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЗрд╕реЗ рдХрдо рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдирд╣реАрдВ, рдЖрдк рд╢рд╛рдпрдж рдХреБрдЫ рдРрд╕рд╛ рдирд╣реАрдВ рджреЗрдЦреЗрдВрдЧреЗ рдЬреЛ рдЖрдкрдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЖрдкрдХреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдЖрд░рдпреВрдбреА рдПрдкреАрдЖрдИ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдЪреАрдЬрд╝реЛрдВ рдХреЛ рдЖрдкрдХреЗ рдбреАрдПрдПрд▓ рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдзрд╛рд░рдгрд╛рдПрдБ рдмрдирд╛рдиреА рд╣реЛрдВрдЧреАред

рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдореЗрдВ рдХреБрдЫ рдкреИрдЯрд░реНрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ 2.2 рдореЗрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЖрдзрд╛рд░ рдкреНрд░рдХрд╛рд░ рдпрд╛ рд╕рдореНрдореЗрд▓рди рдмрдирд╛рдиреЗ рдореЗрдВ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХреЛ рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд рдХрд░реЗрдЧрд╛ред

@kieronlanning

рд╡рд░реНрддрдорд╛рди рд╡рд╛рд▓реЗ - Id4, OpenIddict - рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрддреНрдХреГрд╖реНрдЯ OSS рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИрдВ, рдФрд░ рдореИрдВ рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдЗрд╕рдХреЗ рдкреАрдЫреЗ MS рдХреЗ рд╕рдорд░реНрдерди рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рдХрднреА рднреА рдПрдХ рдмреБрд░реА рдмрд╛рдд рд╣реЛ рд╕рдХрддреА рд╣реИ ...? рд▓реЛрдЧреЛрдВ рдХреЗ рдПрдХ рдЫреЛрдЯреЗ рд╕рдореВрд╣ рд╕реЗ рдХрд┐рддрдирд╛ рд╕рдорд░реНрдерди рдЙрдкрд▓рдмреНрдз рд╣реИ, рдЗрд╕рдХреА рдПрдХ рд╕реАрдорд╛ рд╣реИ, рдФрд░ рдпреЗ рдорд┐рд╢рди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрддреНрдкрд╛рдж рд╣реИрдВред

рдЪреВрдБрдХрд┐ рдЖрдкрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрд╛ рдерд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдмреБрд░реА рдмрд╛рдд рд╣реЛ рд╕рдХрддреА рд╣реИ:

ASP.NET рдЯреАрдо рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреА рднреА рд╣реИ, рд╕реАрдорд┐рдд рдХреНрд╖рдорддрд╛ рд╡рд╛рд▓реЗ рд▓рд╛рдЦреЛрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рд╕реЗрд╡рд╛ рдХрд░ рд░рд╣реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдИ рднреА рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рд╕реЗ рд╕рдордп рдФрд░ рдкреНрд░рдпрд╛рд╕ рд▓реЗрдЧреАред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдо рд╕рднреА рдХреЛ рдХрд┐рд╕реА рднреА рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдВрдмрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рд╢рд╛рдпрдж рдЕрдзрд┐рдХ рдореВрд▓реНрдп рдкреНрд░рджрд╛рди рдХрд░реЗрдВред

рдЗрд╕рд╕реЗ рднреА рдмреБрд░реА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдХреЛ рдиреБрдХрд╕рд╛рди рдкрд╣реБрдВрдЪрд╛рддрд╛ рд╣реИ рдФрд░ Microsoft рджреНрд╡рд╛рд░рд╛ "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ" рдкреИрдХреЗрдЬ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдирдП рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХрдИ рдХрдВрдкрдирд┐рдпрд╛рдВ рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдЪреБрдирддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ Microsoft рд╕реЗ рд╣реИ, рднрд▓реЗ рд╣реА рдпрд╣ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ (рдФрд░ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХрдо рд╣реЛред рдХрд╛рдмрд┐рд▓ред ASP.NET рдкрд╣рд▓реЗ рд╕реЗ рд╣реА Json.NET, Poly, AutoMapper, рдФрд░ рдХрдИ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЬрдЯрд┐рд▓ рд╕реБрд░рдХреНрд╖рд╛ рдЙрддреНрдкрд╛рдж (рдЬрд┐рд╕реЗ рд╕рдорд╛рди рдЖрдзрд╛рд░ рдХреЛрдб рдХреЗ 80% рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА) рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд▓рдд рдХрджрдо рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ, рдЬрдм рдорд╣рд╛рди рд╡рд┐рдХрд▓реНрдк рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИрдВ, рдФрд░ рд╕рд╛рде рдореЗрдВ рд░реЛрдбрдореИрдк рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рднреА рдмрд╣реБрдд рд╕реА рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬрд╝реЗрдВред

@рдЭрд╛рдВрдХрдирд╛
рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ, рдореЗрд░реЗ рдРрдкреНрд╕ рдХреА рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд▓рд┐рдЦрдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рдЕрд╕рд▓ рдореЗрдВ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рд╡реЗ рдврд╛рдВрдЪреЗ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░рд┐рдпреЛрдВ рдХреЗ рднреАрддрд░ рдирд╣реАрдВ рд╣реИрдВ:

CRUD resources (repository responsibility)

Manipulating data (sieve responsibility)
    Paging
    Filtering
    Searching
    Sorting
    Shaping

рд▓реЗрдХрд┐рди рдРрд╕реА рдХрдИ рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ AspNetCore рдмреЗрд╣рддрд░ рдХрд░ рд╕рдХрддрд╛ рдерд╛ (AspNetCore.RestFramework рдкреИрдХреЗрдЬ рд╣реЛрдиреЗ рд╕реЗ):

  1. HATEOAS (рд╕реНрд╡рдпрдВ рдЦреЛрдЬрдиреЗ рдпреЛрдЧреНрдп рдПрдкреАрдЖрдИ)
  2. рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░ (рдХрд╕реНрдЯрдо рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░ рд╕реЗрдЯ рдХрд░рдирд╛)
  3. рд╡рд░реНрдЬрдирд┐рдВрдЧ (рдореАрдбрд┐рдпрд╛рдЯрд╛рдЗрдк рд╕рдВрд╕реНрдХрд░рдг рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ)
  4. рдореЗрдирдкреНрдпреБрд▓реЗрдЯреЗрдб рдбреЗрдЯрд╛ рдореЗрдЯрд╛рдбреЗрдЯрд╛ (рдПрдХреНрд╕-рдкреЗрдЬрд┐рдиреЗрд╢рди рд╣реЗрдбрд░ рдореЗрдВ рдкреЗрдЬрд┐рдиреЗрд╢рди, рдлрд┐рд▓реНрдЯрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ ... рдЖрджрд┐)ред
  5. рджрд░ рд╕реАрдорд┐рдд рдФрд░ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ, рдореБрдЭреЗ рдпрд╣рд╛рдБ рдХреБрдЫ рдорд┐рд▓реЗ: https://github.com/thangchung/awesome-dotnet-core... рд▓реЗрдХрд┐рди, рддреГрддреАрдп рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИрдВ!

рд╡рд╣реА рдЪрд▓рдиреА рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИ, рдЕрдЧрд░ рдкреЗрдЬрд┐рдиреЗрд╢рди, рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ ... рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреИрдХреЗрдЬ рд╣реИ, рддреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдмрдЧреНрдЧреА рдпрд╛ рдЧреИрд░-рд░рдЦрд░рдЦрд╛рд╡ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдкреНрд░рд╡реГрддреНрддрд┐ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рдореИрдВрдиреЗ рдЗрд╕ рдЪрд▓рдиреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдкрдиреЗ рдРрдк рдореЗрдВ рдХрд┐рдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ: https:// github.com/Biarity/Sieve , рд▓реЗрдХрд┐рди рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд┐рд╕реА рднреА рд╕рдордп рд▓реЗрдЦрдХ рдХреЗ рд╡реНрдпрд╕реНрдд рд╣реЛрдиреЗ рдкрд░ рдЧреИрд░-рд░рдЦрд░рдЦрд╛рд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ AspNetCore django рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкрд░рд┐рдкрдХреНрд╡ рд╣реИ, рдЗрд╕ рддрд░рд╣ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ asp рдкреНрд░рджрд░реНрд╢рди рдХреА рд╡рд┐рд▓рд╛рд╕рд┐рддрд╛ рдФрд░ django рдХреА

рд▓реЗрдХрд┐рди, рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рддреГрддреАрдп рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИрдВ!

^ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдЪреНрдЫреА рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА ЁЯШЮ

рд▓реЗрдХрд┐рди, рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рддреГрддреАрдп рдкрдХреНрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИрдВ!

рд╣рд╛рдВ, рдареАрдХ рдпрд╣реА рдорд╛рдирд╕рд┐рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдпрд╣рд╛рдВ рдмрджрд▓рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред ASP.NET Core рдФрд░ .NET Core рдУрдкрди рд╕реЛрд░реНрд╕ рд╣реИрдВ рдФрд░ рдЙрдирдХрд╛ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо _is_ рдУрдкрди рд╕реЛрд░реНрд╕ рдХрдореНрдпреБрдирд┐рдЯреА рдХреЛ рдЧрд▓реЗ рд▓рдЧрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рди рдХреЗрд╡рд▓ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛ .NET рдлрд╛рдЙрдВрдбреЗрд╢рди рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рдеред

рд▓реЗрдХрд┐рди рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд┐рд╕реА рднреА рд╕рдордп рдЧреИрд░-рд░рдЦрд░рдЦрд╛рд╡ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдЦрдХ рд╡реНрдпрд╕реНрдд рд╣реЛ рдЧрдпрд╛

рдФрд░ рдЗрд╕реА рддрд░рд╣, рдПрдХ "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ" рдкреИрдХреЗрдЬ рдХрд┐рд╕реА рднреА рд╕рдордп рдХрдВрдкрдиреА рджреНрд╡рд╛рд░рд╛ рдЕрдкрдиреА рд░реБрдЪрд┐ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рднреА рд╣реБрдЖ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрдИ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреИрдХреЗрдЬ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рднреА рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИред

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рд▓реЗрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдкрдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕рдХреЗ рд╕рд╛рде рд░рд╣ рд╕рдХреЗрдВред рднрд▓реЗ рд╣реА рдЗрд╕рдХреЗ рд▓реЗрдЦрдХ рдХреМрди рд╣реИрдВред рдУрдкрди рд╕реЛрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рднрд▓реЗ рд╣реА рд▓реЗрдЦрдХ рдиреЗ рдЬрд╡рд╛рдм рди рджрд┐рдпрд╛ рд╣реЛ, рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдмрджрд▓рдиреЗ рдХреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдХрджрд╛рд░ рд╣реИрдВред

рдореИрдВ рдЙрди рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Microsoft рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд╕рдЦреНрдд рдЦрд┐рд▓рд╛рдл рд╣реВрдБ рдЬреЛ рдЖрдк рд╕рд╛рдордиреЗ рдЖ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдирд╣реАрдВ рдХрд┐ рдХрднреА рднреА рдПрдХ-рдлрд┐рдЯ-рд╕рднреА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рд╣рд╛рде рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реЛрддреА рд╣реИ, рдмрд▓реНрдХрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рд▓рд┐рдП рднреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдврд╛рдВрдЪреЗ рдХреЗ рдЙрди рд╣рд┐рд╕реНрд╕реЛрдВ рд╕реЗ рд╕рдВрд╕рд╛рдзрди рд▓реЗрддрд╛ рд╣реИ рдЬрд┐рди рдкрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рд╕рд╛рде рд╣реА рдпрд╣ рдУрдкрди рд╕реЛрд░реНрд╕ рдЖрдЗрдбрд┐рдпрд╛ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдмреБрд░рд╛ рдорд╛рдирддрд╛ рд╣реИ ред

рдпрджрд┐ рдЖрдк рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЕрднреА рднреА рдЗрд╕ NIH рд╕рд┐рдВрдбреНрд░реЛрдо рд╕реЗ рдЬреВрдЭ рд░рд╣реЗ рд╣реИрдВ (рдпрд╛ "<рд▓рд╛рд░реНрдЬ-рдХрдВрдкрдиреА> рдореЗрдВ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛"), рддреЛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рдЧрдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ 2018 рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЕрдм рдУрдкрди рд╕реЛрд░реНрд╕ рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рдЖрдк рд╕рд╣реА рд╣реИрдВ Microsoft рдХрд┐рд╕реА рднреА рдкреИрдХреЗрдЬ рдХреЛ рдмрдирд╛рдП рд░рдЦрдирд╛ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдЙрдирдХреЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ LTS рд╣реИ: https://www.microsoft.com/net/support/policy

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, .NET Core 1.1 рд╕рдорд░реНрдерди 27 рдЬреВрди 2019 рдХреЛ рд╕рдорд╛рдкреНрдд рд╣реЛ рд░рд╣рд╛ рд╣реИ... рдЗрд╕ рддрд░рд╣ рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдпрджрд┐ рдореИрдВ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдмреАрдЪ рдореЗрдВ рдЕрдкрдВрдЧ рдирд╣реАрдВ рд╣реЛрдКрдВрдЧрд╛ред

рдореИрдВрдиреЗ рдПрдХ рдмрд╛рд░ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреЗрдЬрд┐рдиреЗрд╢рди рдЯреИрдЧ-рд╣реЗрд▓реНрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдпрд╣ рд╕реБрдЦрдж рдирд╣реАрдВ рдерд╛, рд▓реЗрдЦрдХ рдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рд╡рд╣ рдЗрд╕реЗ .NET рдХреЛрд░ 1.1 рдХреЗ рд▓рд┐рдП рдареАрдХ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдФрд░ рдореБрдЭреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдПрдХ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдкреНрд░рдгрд╛рд▓реА рдереА, рдореЗрдВ 2.0 (рдФрд░ рдЙрд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдкреВрд░рд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕рдиреЗ рд╡рд╣ рдкреИрдХреЗрдЬ рдореБрдлрд╝реНрдд рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛)ред

рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЙрджреНрдпрдо рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ... рдЖрдк рдкреВрд░реА рдЯреАрдо рдХреЛ рдпрд╣ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рджрд┐рд▓рд╛ рд╕рдХрддреЗ рдХрд┐ рдЖрдкрдХреЛ 2.0 рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдмрдХрд┐ рдРрдк рдЕрдк-рдПрдВрдб-рд░рдирд┐рдВрдЧ рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреЗрдЬрд┐рдиреЗрд╢рди-рдЯреИрдЧ-рд╣реЗрд▓реНрдкрд░ рдХрд░рддрд╛ рд╣реИ' рдЯреА рдХрд╛рдо!
рддреЛ рдЖрдк рдмрд╕ рд╕реНрд░реЛрдд рдХреЛ рд╣реИрдХ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ рдЬреИрд╕реЗ рдореИрдВрдиреЗ рдПрдХ рдбреЗрдХреЛрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдерд╛: https://github.com/cloudscribe/cloudscribe.Web.Pagination/issues/37

рдФрд░ рд╣рд╛рдБ, рдХрд┐рд╕рдиреЗ рдХрд╣рд╛ рдХрд┐ рдореИрдВ рдУрдкрди-рд╕реЛрд░реНрд╕ рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рдирд╣реАрдВ рд╣реВрдВ: рднреНрд░рдорд┐рдд:?

@0xRumple рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдФрд░ рд╕рд╣рдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдкрди рд╕реЛрд░реНрд╕ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ?

рдпрджрд┐ рд╡рд╣ рддреГрддреАрдп-рдкрдХреНрд╖ рдкреЗрдЬрд┐рдиреЗрд╢рди рдЯреИрдЧ-рд╕рд╣рд╛рдпрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рдерд╛, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд╡реИрд╕реЗ рднреА "рдЙрджреНрдпрдо рдореЗрдВ" рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдБ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЙрджреНрдпрдо рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ... рдЖрдк рдкреВрд░реА рдЯреАрдо рдХреЛ рдпрд╣ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рджрд┐рд▓рд╛ рд╕рдХрддреЗ рдХрд┐ рдЖрдкрдХреЛ 2.0 рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдмрдХрд┐ рдРрдк рдЕрдк-рдПрдВрдб-рд░рдирд┐рдВрдЧ рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреЗрдЬрд┐рдиреЗрд╢рди-рдЯреИрдЧ-рд╣реЗрд▓реНрдкрд░ рдХрд░рддрд╛ рд╣реИ' рдЯреА рдХрд╛рдо!

"рдкреВрд░реА рдЯреАрдо рдХреЛ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдХрд┐ рдЖрдкрдХреЛ 2.0 рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП", рдПрдХ рдЕрджреНрдпрддрди рд╡рд╛рдкрд╕ рдпреЛрдЧрджрд╛рди рдХрд░реЗрдВ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдФрд░ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдпрд╛ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреЗ рд╕рдордХрдХреНрд╖ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдорджрдж рдХрд░реЗрдВред рдпрджрд┐ рд╕реНрд╡рд╛рдореА рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рддреЛ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдВрдЯрд╛ рд▓реЗрдХрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреА рд╕реЛрдЪ рдХрд╛ рдкреНрд░рдХрд╛рд░ (рдмрд┐рд▓реНрдХреБрд▓ рдХреЛрдИ рдЕрдкрд░рд╛рдз рдирд╣реАрдВ рд╣реИ) рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдХрд┐ "рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░" рдмрдирд╛рдо рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЪрд░реНрдЪрд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣реА рд╣реИред рдпрджрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рднрд╛рдЧ рдирд╣реАрдВ рд▓реЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдУрдкрди рд╕реЛрд░реНрд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдХреНрдпрд╛ рд╣рдореЗрдВ Microsoft рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП?

рдореИрдВ рдпрд╣рд╛рдВ рдХрдИ рд▓реЛрдЧреЛрдВ рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреЛ рд╕рд╛рд╡рдзрд╛рди рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡реЗ рд╣рд░ рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХрд░рдХреЗ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдореЗрдВ рдЕрдЪреНрдЫреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдЦрддреНрдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ @ 0xRumple рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреЗрдЬрд┐рдиреЗрд╢рди рдЯреИрдЧрд╣реЗрд▓реНрдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд▓реЗрдЦрдХ

рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдУрдПрд╕рдПрд╕ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдирдЧреЗрдЯ рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИ, рдпрджрд┐ рдЖрдк рдПрд╕реНрдкрдиреЗрдЯ рдХреЛрд░ 1.1 рдкрд░ рдлрдВрд╕ рдЧрдП рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдПрд╕реНрдкрдиреЗрдЯ рдХреЛрд░ 2.x рд╕реЗ рд╕реБрдзрд╛рд░ рдФрд░ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдирдП рдврд╛рдВрдЪреЗ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд░рддреЗред

@joeaudette
рдореИрдВрдиреЗ рдЕрднреА рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдмрд┐рд▓реНрдЯ-рдЗрди рдмрдирд╛рдо рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рд╕реЙрд▓реНрдпреВрд╢рдВрд╕ рдкрд░ рдЕрдкрдиреА рдмрд╛рдд рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВ рдЕрднреА рднреА рдЙрд╕ рдкреЗрдЬрд┐рдиреЗрд╢рди рдЯреИрдЧрд╣реЗрд▓реНрдкрд░ рдкрд░ рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдЖрднрд╛рд░реА рд╣реВрдВ ... рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдЖрдкрдХреЗ рдкреЗрдЬрд┐рдиреЗрд╢рди рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╡реЗ рдЦреБрд╢ рд╣реИрдВ: рджрд┐рд▓:

@alhardy

рдХреНрдпрд╛ рд╣рдореЗрдВ Microsoft рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП?

рдпрд╣ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд╣рдо рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдЬрдм Microsoft рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рд▓рд╛рддрд╛ рд╣реИ, рддреЛ рд╡реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдУрдкрди-рд╕реЛрд░реНрд╕ рд╕рдорд╛рдзрд╛рди рд╕реЗ рд▓рдбрд╝реЗрдВрдЧреЗ рдпрд╛ рд╡реЗ рдХреЛрдб рдХреА рд╣рд░ рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд┐рдЦреЗрдВрдЧреЗ: рдореБрд╕реНрдХрд╛рди:

рдмреЗрд╢рдХ рдирд╣реАрдВ, рд╣рдо рджреЛрдиреЛрдВ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда, рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рдФрд░ рд╕рдореБрджрд╛рдп-рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ Microsoft рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдЕрдкрдирд╛рддрд╛ рд╣реИ рдФрд░ рд▓рд╛рдкрддрд╛ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЙрди рдкрд░ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХреЗрдВред

django рд╕рдореБрджрд╛рдп рдиреЗ рдЗрд╕реЗ рд╕рд╣реА рдкрд╛рдпрд╛, рд╡реЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди/рдЕрдкрдирд╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд░реАрд╕реНрдЯрдлреБрд▓ рдврд╛рдВрдЪрд╛, рдФрд░ рдЙрд╕рдХреЗ рдКрдкрд░ рд╕рдореБрджрд╛рдп рдХрд╛ рдирд┐рд░реНрдорд╛рдг ... рдпрд╣рд╛рдВ django-rest- рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ- рдврд╛рдВрдЪрд╛: https://www.djangoproject.com/weblog/2016/jun/22/django-rest-framework-funding/

рдЙрдиреНрд╣реЛрдВрдиреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХреА, рдФрд░ рд╕рдореБрджрд╛рдп рдЙрд╕рдХреЗ рдКрдкрд░ рд╕реБрдзрд╛рд░/рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдЙрдирдХрд╛ рд░реЗрдкреЛ рд╣реИ: https://github.com/encode/django-rest-framework... рд▓рдЧрднрдЧ 800 рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛!
рдФрд░ рд╕рдореБрджрд╛рдп рдХреЛ рдРрд╕реЗ рдкреИрдХреЗрдЬ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЙрд╕ рдкреИрдХреЗрдЬ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ django-rest-auth рдпрд╛ django-rest-framework-jwt ред

рдХрдо рд╕реЗ рдХрдо рд╡реЗ рдРрд╕реЗ "рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди" рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ django-admin-site рдпрд╛ django-debug-toolbar ред рдпрд╣ "рдмреИрдЯрд░реА рд╢рд╛рдорд┐рд▓" рдХреЗ рдкрд╛рдпрдерди рджрд░реНрд╢рди рд╕реЗ рднреА рдЖрддрд╛ рд╣реИ, рдкрд╣рд▓реЗ, рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдмреБрд░рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрдо рд╕реЗ рдХрдо-рд╕рд╛рдорд╛рдиреНрдп-рднрд╛рдЬрдХ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдмрд╛рдж рдореЗрдВ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рд╣рд╡рд╛ рд▓рд╛рддрд╛ рд╣реИред

*PS: Dapper (StackExchange рджреНрд╡рд╛рд░рд╛) рдФрд░ EFCore (Microsoft рджреНрд╡рд╛рд░рд╛) рджреЛрдиреЛрдВ ORM рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рд╣реИред рдбреИрдкрд░ рдХреЛ рд╢реБрд░реБрдЖрдд рдореЗрдВ 2011 рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдмрдХрд┐ EFCore 2014... рдХреНрдпрд╛ EFCore рдиреЗ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдмреБрд░реА рддрд░рд╣ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдерд╛? рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ, рдФрд░ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ!
рд▓реЛрдЧ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрд╕ рдЕрджреНрднреБрдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рдКрдкрд░ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреИрд╕реЗ: https://github.com/crhairr/EntityFrameworkCore.MongoDb/

рдХреНрдпрд╛ EFCore рдиреЗ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рдмреБрд░реА рддрд░рд╣ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛?

рдЙрдЙрд╣, рдХрд┐рд╕реА рдХреЛ NHibernate рдпрд╛рдж рд╣реИ (рдЬреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ EF рдХреЗ рд╕рдмрд╕реЗ рдХрд░реАрдм рд╣реИ)? рдирд╣реАрдВ, рд╢рд╛рдпрдж рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдИрдПрдл рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдЙрддрдирд╛ рд╣реА рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬрд┐рддрдирд╛ рдореГрдд

@0xRumple

рдмреЗрд╢рдХ рдирд╣реАрдВ, рд╣рдо рджреЛрдиреЛрдВ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда, рдПрдХ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рдорд╛рдзрд╛рди рдФрд░ рд╕рдореБрджрд╛рдп-рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ Microsoft рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдЕрдкрдирд╛рддрд╛ рд╣реИ рдФрд░ рд▓рд╛рдкрддрд╛ рд╕рдорд╛рдзрд╛рди рдмрдирд╛рддрд╛ рд╣реИ,

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рди рддреЛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛ рд░рд╣рд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдЬрд╛рдирдмреВрдЭрдХрд░ рдХрдо рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рд╣реИред

рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рдбреИрдкрд░ рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИрдВред рдИрдПрдл рдХреЛ рд╣рдореЗрд╢рд╛ рдПрдХ рдкреВрд░реНрдг-рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╡рд╛рд▓реЗ рдУрдЖрд░рдПрдо рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рджреЛрдиреЛрдВ 2007 рдореЗрдВ рдореВрд▓

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдк рднреА рдЧрд▓рдд рд╣реИрдВ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╕рдм рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬрдм рдЖрдк рдЖрд░рдИрдПрд╕рдЯреА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдереНрд░реЗрдб рдЬреНрдпрд╛рджрд╛рддрд░ рдСрде рд╕рд░реНрд╡рд░ рдЙрддреНрдкрд╛рдж рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВ, рдЬреЛ рд╡реЗрдм рдврд╛рдВрдЪреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдЯреЗ рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рдХреЗрдВрджреНрд░рд┐рдд рд▓рдЧрддреЗ рд╣реИрдВред рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдорд╛рдирдХреАрдХреГрдд search/paging/filter рдкреИрд░рд╛рдореАрдЯрд░ рд╡реЗрдм рдПрдкреАрдЖрдИ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реЛрдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрдХ рд╣реЛрдВрдЧреЗред

рдпрд╣ рдЪрд░реНрдЪрд╛ рдЙрд╕ рдЕрдЬреАрдм рд╕рдЪреНрдЪрд╛рдИ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ рдХрд┐ рдХреБрдЫ рд╕рдВрдЧрдардиреЛрдВ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдкреЗрд╢ рдХрд┐рдП рдЧрдП рд╣рд░ рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рд╣рд┐рд╕рд╛рдм рджреЗрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдпрд╣ рдПрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕реНрдХреИрди рд╣реИ рдЬреЛ "рдЬреЛрдЦрд┐рдо" рд░рд┐рдкреЛрд░реНрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕реЗ рдЕрдХреНрд╕рд░ рдПрдХ рдЧреИрд░ рддрдХрдиреАрдХреА рдЬреЛрдЦрд┐рдо рдкреНрд░рдмрдВрдзрдХ рдХреЛ рд╕рдореАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдпреЗ рдЙрдкрдХрд░рдг рдРрд╕реА рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рдлрд╝реНрд▓реИрдЧ рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдЕрдиреБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдРрд╕реА рдХреЛрдИ рднреА рдЪреАрдЬрд╝ рдЬреЛ рдХреЙрдкреАрд▓реЗрдлрд╝реНрдЯ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИред

рдЖрдк рдпрд╣ рднреА рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрди рд╕рдВрдЧрдардиреЛрдВ рдореЗрдВ рдУрдкрди рд╕реЛрд░реНрд╕ рдореЗрдВ рд╡рд╛рдкрд╕ рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рдкрд╛рдЧрд▓ рдмрд╛рдд рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рд╛рдВ, рдЖрдЗрдбреЗрдВрдЯрд┐рдЯреА рд╕рд░реНрд╡рд░ 4 рдХрдорд╛рд▓ рдХрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдЧреИрд░-рддрдХрдиреАрдХреА рдЬреЛрдЦрд┐рдо рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ, рдХреБрдЫ рдореБрдЯреНрдареА рднрд░ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░ - рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреБрдЫ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдпрд╣ рд╡реНрдпрдХреНрддрд┐ рдЧреБрдорд░рд╛рд╣ рд╣реИ рд▓реЗрдХрд┐рди рдЬрдореАрди рдкрд░ рдФрд╕рдд рдбреЗрд╡рд▓рдкрд░ рдпрд╣ рд▓рдбрд╝рд╛рдИ рдЬреАрддрдиреЗ рд╡рд╛рд▓рд╛ рдирд╣реАрдВ рд╣реИред

рдПрдХ "рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ рд▓рд╛рдЗрдЯ" рдЬреИрд╕рд╛ рдХрд┐ @markrendle рдЙрдкрдпреБрдХреНрдд рд░реВрдк рд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдореБрдЦреНрдп рд░реВрдк рд╕реЗ Microsoft рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, .NET рдХреЛрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдореЗрдВ рдЕрдВрддрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рд╕рдВрдЧрдарди рдореЗрдВ рдПрдХ рдЙрджреНрдпрдо рд╡рд╛рд╕реНрддреБрдХрд╛рд░ рд╣реИ рдЬреЛ рдЬреЛрд░ рджреЗ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдХреБрдЫ $$ $$$ рдПрдЪрдкреА рдпрд╛ рдЖрдИрдмреАрдПрдо рд╕реЗ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬрд╝ рдЬрдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@edandersen

рд▓реЗрдХрд┐рди рдПрдХ рдЧреИрд░-рддрдХрдиреАрдХреА рдЬреЛрдЦрд┐рдо рдкреНрд░рдмрдВрдзрдХ рдХреЗ рд▓рд┐рдП рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреЛрдИ рд╡рд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ, рдХреБрдЫ рдореБрдЯреНрдареА рднрд░ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ рдФрд░ рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░ - рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреБрдЫ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред

рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рддреЗ рд╣реИрдВ рддреЛ IdentityServer рд▓реЛрдЧ рдХреБрдЫ рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗ - рдЬреИрд╕реЗ рдЖрдк Microsoft рдХреЛ рднреБрдЧрддрд╛рди рдХрд░реЗрдВрдЧреЗред рдУрдПрд╕рдПрд╕ рдореБрдлреНрдд рдХреЗ рдмрд░рд╛рдмрд░ рдирд╣реАрдВ рд╣реИред

рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Microsoft рдХреА ASP.NET рдХреЛрд░ рдЯреАрдо "рдореБрдЯреНрдареА рднрд░ рд▓реЛрдЧ" рдирд╣реАрдВ рд╣реИ? рд╕реНрдкреЙрдпрд▓рд░... рд╡реЗ рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ 20-30 рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рд╣реИрдВред рдРрд╕реЗ рдЙрддреНрдкрд╛рдж рдкрд░ рдХреЗрд╡рд▓ рдПрдХ рдЬреЛрдбрд╝рд╛ рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдХрд┐ "рд╣рд░ рдХрд┐рд╕реА рдХреЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╕реНрд░реЛрдд рдХреЛрдб" рдПрдХ рдмреБрд░реА рдЪреАрдЬ рдХреНрдпреЛрдВ рд╣реИ? рдФрд░ рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Microsoft рдХрд╛ рдпрд╣ рдЙрддреНрдкрд╛рдж рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рдирд╣реАрдВ рд╣реЛрдЧрд╛? рдпрд╣ рдирдпрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИред

@khellang "рд╕рднреА рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╕реНрд░реЛрдд рдХреЛрдб" рд╕реНрдкрд╖реНрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИ! рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЙрди рддрд░реНрдХреЛрдВ рдкрд░ рдЖрд╢реНрдЪрд░реНрдп рд╣реЛрдЧрд╛ рдЬреЛ рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред "Microsoft рдиреЗ рдЗрд╕реЗ рд▓рд┐рдЦрд╛" рдмрд┐рдВрджреБ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдХрднреА-рдХрднреА рдПрдХрдорд╛рддреНрд░ рд╕реНрд╡реАрдХрд╛рд░реНрдп рддрд░реНрдХ рд╣реЛрддрд╛ рд╣реИред рдиреЛрдЯ рдореИрдВ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рд▓реЗрдХрд┐рди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд┐рд▓реНрд╕ рдПрдбрд╡реЛрдХреЗрдЯ рдХреА рднреВрдорд┐рдХрд╛ рдирд┐рднрд╛ рд░рд╣рд╛ рд╣реВрдВред

рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╡рд╣реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╡рдХрд╛рд▓рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдХрд╛ рдирд┐рдпреЛрдХреНрддрд╛ рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рднреБрдЧрддрд╛рди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЦрд░реАрдж рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢рд╛рдпрдж рдЙрдиреНрд╣реЗрдВ рдЬреАрдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╕реЗ рд▓реВрдЯ рд▓реЗрдЧреАред

рдареАрдХ рд╣реИ, рдЕрдЧрд░ рд╣рдо рдЗрди рдЧреИрд░-рддрдХрдиреАрдХреА рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЗ рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЪреАрдЬреЗрдВ рдкрд╛рдЧрд▓ рд╣реЛрдиреЗ рд▓рдЧреЗрдВрдЧреАред рдЖрдИрдПрдордПрдЪрдУ, рдЬреЛ рд▓реЛрдЧ рдЧреИрд░-рддрдХрдиреАрдХреА рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдпрд╣ рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред рдпрджрд┐ рд╡реЗ рдХрд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХрдо рд╕реЗ рдХрдо рдЙрдиреНрд╣реЗрдВ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡реЗ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдХрд╣рдирд╛ рдХрд┐ IdentityServer рдЬреИрд╕рд╛ рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬреНрдЮрд╛рдд рдкреИрдХреЗрдЬ MS рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдЧрд▓рдд рд╣реИред рдореИрдВ рдЙрд╕ рддрд░рд╣ рдХреА рдХрдВрдкрдиреА рд╕реЗ рднрд╛рдЧреВрдВрдЧрд╛!

рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рдЬреЛ рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИ, рдЙрд╕ рдкрд░ рд╕рдордп рдмрд┐рддрд╛рдирд╛, рдпрд╣ рдареЛрд╕ рд╣реИ рдФрд░ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдкреАрдЫреЗ рдЕрд╕рд▓реА рдХрд╛рд░рдг рдХреНрдпрд╛ рд╣реИ .. рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдРрд╕рд╛ рд╣реА рдерд╛: рдУрд╣, рдЪрд▓реЛ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВ, рд╕рд┐рд░реНрдл рдЗрд╕рд▓рд┐рдП рдХрд┐ рд╣рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЧреНрд░рд╛рд╣рдХ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреВрдЫрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдореЗрдВ рд╢рд╛рдпрдж рдЗрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рдирд╣реАрдВ рд╣реИ?

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ OAuth-Server рд╕реНрдерд╛рди рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рджрд╛рд╡реЗрджрд╛рд░ рдХреЛ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИред

рдпрд╣ рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛ рдмрд╕ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рддреНрд╡рд░рд┐рдд рдФрд░ рдЧрдВрджреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП - рдПрдХ рддреНрд╡рд░рд┐рдд рдФрд░ рдЧрдВрджрд╛ рд╕рдорд╛рдзрд╛рдиред

рдпрджрд┐ рдЖрдк OAuth рд╕рд░реНрд╡рд░ рд╕реЗ рдЕрдзрд┐рдХ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рдореМрдЬреВрджрд╛ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХреЛрдИ рд░реЛрдХ рдирд╣реАрдВ рд╕рдХрддрд╛ рд╣реИред рдпрд╛, рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ-рдХреНрд▓рд┐рдХ рдХрд╛ рдЦрд╛рдХрд╛ рдмреБрдирд┐рдпрд╛рджреА OAuth _рдФрд░ рдХреБрдЫ рдФрд░ рдирд╣реАрдВ_ рдХрд░реЗ, рддреЛ рдпрд╣ рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдпреЛрдЧреНрдп рд▓рдХреНрд╖реНрдп рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдзрд╛рдЧрд╛ рдУрдПрд╕рдПрд╕ рдХреНрдпрд╛ рд╣реИ, рдПрдордПрд╕ рдХреНрдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рд╣реИ рдФрд░ рдПрдордПрд╕ рдХреНрдпрд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп .NET рдХреЛрд░ 2.2 рдХреЗ рд░реЛрдбрдореИрдк рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ рдпрд╣рд╛рдБ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИред

@рдЦреЗрд▓рдВрдЧ
"NHibernate рдорд░ рдЪреБрдХрд╛ рд╣реИ", рдХрд┐рд╕рдиреЗ рдХрд╣рд╛? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрднреА рднреА рдЬреАрд╡рд┐рдд рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдбреИрдкрд░ рд╕реЗ рднреА рдмреЗрд╣рддрд░ рдЧрддрд┐ рд╣реИ
https://github.com/nhibernate/nhibernate-core/graphs/contributors
https://github.com/StackExchange/Dapper/graphs/contributors

рдЖрд╣, рдореИрдВрдиреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ aspcore pacakges рдХреЗ рднреАрддрд░ рд░реАрд╕реНрдЯрдлреБрд▓ рдлреНрд░реЗрдорд╡рд░реНрдХ рд░рдЦрдиреЗ рдкрд░ рдЕрдкрдиреА рдмрд╛рдд рдкрд░ рдЯрд┐рдХреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдм рддрдХ IdentityServer рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ ... рдпрд╣рд╛рдБ IdentityServer рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдареЛрд╕ рдФрд░ рдорд╣рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ 2-рд▓рдбрд╝рдХреЛрдВ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
https://github.com/IdentityServer/IdentityServer4/graphs/contributors

рд▓рдЧрднрдЧ 85% рдХрд╛рдо 2 рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдпрд╣ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрджреНрдпрдо рдореЗрдВ рдХрдИ рдХрдВрдкрдирд┐рдпрд╛рдВ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдРрд╕реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рд░рдЦрд░рдЦрд╛рд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреА рд╣реИрдВред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдХрдВрдкрдиреА рдиреЗ рдореБрдЭреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рд╡реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ Vus.Js рдХреЗ рдмрдЬрд╛рдп рд░рд┐рдПрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрд╣рд╛ "vue.js рдмрд╣реБрдд рдЬреНрдпрд╛рджрд╛ рдЗрд╡рд╛рди рдпреВ рд╣реИ" ... рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╕рд╣реА рд╣реИрдВред рдФрд░ рдпрд╣реА рдореИрдВ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреИрдХреЗрдЬ рдХреЗ рднреАрддрд░ рд░реАрд╕реНрдЯрдлреБрд▓ рдкреИрдХреЗрдЬ рд░рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ

рд╡рд╣реА рдбреЗрдЯрд╛ рдореИрдирд┐рдкреБрд▓реЗрд╢рди/рд╕реАрд╡рд┐рдВрдЧ (рдкреЗрдЬрд┐рдВрдЧ, рдЖрдХрд╛рд░ рджреЗрдиреЗ, рд╕реЙрд░реНрдЯрд┐рдВрдЧ ... рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд▓рдЧрднрдЧ рд╣рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╡реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ, рдФрд░ рд╣рд╛рдБ рдЬреИрд╕рд╛ рдХрд┐ @рдордгрд┐рдЧрдВрдзрдо рдиреЗ рдХрд╣рд╛, рд╡реЗ рдорд╛рдирдХреАрдХреГрдд рдФрд░ рд╕реАрдзреЗ рд╣реИрдВред

@рдордгрд┐рдЧрдВрдзрдо
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣реА рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╣реА рд╣реИ ... рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдЕрдкрдирд╛рдирд╛ рдФрд░ рд╕рдорд░реНрдерди рдХрд░рдирд╛, рдЪрд╛рд╣реЗ рдЖрд░реНрдерд┐рдХ рд░реВрдк рд╕реЗ рдпрд╛ рдЬреАрдердм рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпреЛрдЧрджрд╛рди рдХрд░рдирд╛ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЙрдирдХреЗ рдбреЙрдХреНрд╕ рдпрд╛ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдЙрдирдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ (рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╣реЗрдВрд╕рд▓рдореИрди рдХреЛ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╡рд░реНрдЪреБрдЕрд▓ рдореЗрдВ рдЕрдкрдиреЗ рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рд╕реНрд╡рд╛рд╢рдмрдХрд▓ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рджреЗрдЦрд╛ рд╣реИред рдЕрдХрд╛рджрдореА рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рд╛рди рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдЕрдзрд┐рдХ рдЕрдиреБрдХреВрд▓рди рджреЗрдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛!)

@kieronlanning
рдЖрдк рд╕рд╣реА рдХрд╣ рд░рд╣реЗ рд╣реИрдВ, рд╣рдо рдореБрдЦреНрдп рд╡рд┐рд╖рдп рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдЪрд▓реЗ рдЧрдП рд╣реИрдВ... рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдПрдПрд╕рдкреА рдХреЛрд░ рдЕрднреА рдмрд╣реБрдд рдкрд░рд┐рдкрдХреНрд╡ (рдкреНрд░рджрд░реНрд╢рдирдХрд╛рд░реА рдФрд░ рднрд░реЛрд╕реЗрдордВрдж) рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдЙрдЯ-рдСрдл-рдж рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдЫреВрдЯ рджреЗрдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рджреЛ рдореБрдЦреНрдп рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рд╣реИрдВ, рдмрд╣реБрдд рд╣реА рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рд╣реИред IS4 рдХрд╛ рд░рдЦрд░рдЦрд╛рд╡ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╡реЗ рджреЛ рд▓реЛрдЧ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреА рдорджрдж рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрд╛рддреЗ рд╣реИрдВред рдЗрд╕реЗ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдмрд╛рдЬрд╛рд░ рдкрд░ OAuth2 рд╕реЗрд╡рд░ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда FOSS рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред

"NHibernate рдорд░ рдЪреБрдХрд╛ рд╣реИ", рдХрд┐рд╕рдиреЗ рдХрд╣рд╛? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрднреА рднреА рдЬреАрд╡рд┐рдд рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдбреИрдкрд░ рд╕реЗ рднреА рдмреЗрд╣рддрд░ рдЧрддрд┐ рд╣реИ

@ 0xRumple рдореИрдВрдиреЗ рдХрд╣рд╛ "рдореГрдд рдЬрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛" рдУрдПрд╕рдПрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рдФрд░ рдЙрдкрдпреЛрдЧ рдкрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рдЕрдЬреАрдм рдореАрдЯреНрд░рд┐рдХ рд╣реИрдВред рдХреНрдпрд╛ 2003 рд╕реЗ рдХрд┐рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд┐рдП рдЧрдП рдХрдорд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреА рддреБрд▓рдирд╛ 2011 рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрд░рдирд╛ рдЙрдЪрд┐рдд рд╣реИ? рд╡реЗ _very_ рднрд┐рдиреНрди рдЬрд╛рдирд╡рд░ рднреА рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реВрддреНрд░ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ); рдбреИрдкрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП "рдкреВрд░реНрдг" рд░рд╣рд╛ рд╣реИ (рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдмрдирд╛рдП рдирд╣реАрдВ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрджрд┐), рдЬрдмрдХрд┐ NHibernate (рдФрд░ рдЗрд╕рдХрд╛ рдлреАрдЪрд░ рд╕реЗрдЯ) рдкрд┐рдЫрдбрд╝ рд░рд╣рд╛ рд╣реИред
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрднреА рднреА рдЪрд▓ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрдЦрд┐рд░реА рдмрд╛рд░ рдпрд╛рдж рдирд╣реАрдВ рд╣реИ, рдореЗрд░реЗ рдкрд┐рдЫрд▓реЗ 7 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ .NET рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдкрд░рд╛рдорд░реНрд╢, рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рдЬрдВрдЧрд▓реА рдореЗрдВ NHibernate рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИ (рдЬрд╣рд╛рдВ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдирд╣реАрдВ рдерд╛ рдПрдВрдЯрд┐рдЯреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ)ред рд╣рд░ рдХреЛрдИ рдЬреЛ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЗрд╕ рд╕реНрдерд╛рди рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╡рд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ NHibernate рдкрд┐рдЫрдбрд╝ рд░рд╣рд╛ рд╣реИ рдФрд░ Entity Framework рдХреЗ рд▓рд┐рдП рдмрд╛рдЬрд╛рд░ рд╣рд┐рд╕реНрд╕реЗрджрд╛рд░реА рдЦреЛ рд░рд╣рд╛ рд╣реИред рдЕрдХреЗрд▓реЗ NuGet рдбрд╛рдЙрдирд▓реЛрдб рдирдВрдмрд░ рджреЗрдЦреЗрдВ: рдЗрдХрд╛рдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ 3.4M рдХреЗ рд╕рд╛рде 45.8M рдмрдирд╛рдо NHibernate рд╣реИред

рд╡реИрд╕реЗ рднреА, рдмрд┐рдВрджреБ рдЗрдХрд╛рдИ рдлреНрд░реЗрдорд╡рд░реНрдХ рдмрдирд╛рдо NHibernate рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл _one_ рдЙрджрд╛рд╣рд░рдг рдерд╛ред рд╣рдордиреЗ рдпрд╣ рдЪрд░реНрдЪрд╛ рдмрд╛рд░-рдмрд╛рд░ рдХреА рд╣реИ; рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬрдм Microsoft рдиреЗ ASP.NET Core рдореЗрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╣рд▓реНрдХреЗ IoC рдХрдВрдЯреЗрдирд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛ рдпрд╛ рдЬрдм Microsoft рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдореИрдкрд░ рдХреЛ рд░реЛрд▓ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдЬрдм рднреА Microsoft OSS рд╕рдореБрджрд╛рдп рдореЗрдВ рдХрд┐рд╕реА рд╕реНрдерд╛рди рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдХрдорд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рдХреА рд╣рд╡рд╛ рдХрд╛ рдмрд╣реБрдд (рдЕрдзрд┐рдХрд╛рдВрд╢?) рдЪреВрд╕рддрд╛ рд╣реИред рдЕрдХреНрд╕рд░ рдЫреЛрдЯреА, рд╕рдореБрджрд╛рдп рд╕рдВрдЪрд╛рд▓рд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдордп рдХреЗ рд╕рд╛рде рджрдо рдШреБрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдореИрдВ, рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдореБрджрд╛рдп, рдпрд╣ рд╕рдм рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ; Microsoft рдХреА рдЕрдкрдиреА (.NET) рджреБрдирд┐рдпрд╛ рдореЗрдВ Microsoft рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдирдХреЗ рдкрд╛рд╕ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдиреНрд╣реЗрдВ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЙрдирдХреЗ рджрд┐рдорд╛рдЧ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: рдореБрд╕реНрдХрд╛рди:

рдХрдорд╛рд▓ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ :)

рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдВрдЪ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдХрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ?

рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рдмрдВрдзрди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░реЗрдВ

рд╕рдВрдмрджреНрдз рд╡реЗрдм рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрдм рдРрдк рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдПрдХ рд╕рдордп рдРрд╕рд╛ рдЖрддрд╛ рд╣реИ рдЬрдм рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЗрди-рд╣рд╛рдЙрд╕ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЙрдирдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рд╕рднреА рдпреВрдирд┐рдЯ, рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдФрд░ рдПрдХреАрдХрд░рдг рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░ рд▓рд┐рдП рд╣реЛрдВ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирд╡ рдЬреИрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред

рдЪрд┐рдВрддрд╛рдУрдВ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рднрд╛рд╡рдирд╛ рдореЗрдВ, рдореЗрд░реЗ рд╡реЗрдм рдРрдкреНрд╕ рдПрдХрд╛рдзрд┐рдХ рд╡реЗрдм рдПрдкреАрдЖрдИ рдХрд╣рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдореИрдВ https://localhost рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рд╡реЗрдм рдПрдкреАрдЖрдИ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ:. рдПрдХ рдмрд╛рд░ рд╡реЗрдм рдПрдкреАрдЖрдИ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж (рдкрд░реНрдпрд╛рдкреНрдд), рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдкрд░ рдЖрдИрдЖрдИрдПрд╕ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реВрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдЗрдЯ рдХрд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╣реЛрд╕реНрдЯ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ DNS рд╕рд░реНрд╡рд░ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдореИрдВ рд╕рд░реНрд╡рд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрд░реА рдбреЛрд░реЗрдВрд╕' - @blowdart - gist https://gist.github.com/blowdart/1cb907b68ed56bcf8498c16faff4221c рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВ рд╕рднреА рд╕рд╣реА рджреБрдХрд╛рдиреЛрдВ рдореЗрдВ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЖрдпрд╛рдд рдХрд░рддрд╛ рд╣реВрдВ, рдореЗрд░реА рдорд╢реАрди рдкрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрд▓рд╛рд░реНрдо рдХреЗ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рддрдм рдмрджрд▓рддрд╛ рд╣реИ рдЬрдм рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЕрдиреНрдп рд▓реЛрдЧ рд╡реЗрдм рдРрдкреНрд╕ рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ (рдПрдкреАрдЖрдИ рдХреЙрд▓ рд╕рднреА рдореЗрд░реЗ рд╡рд┐рдХрд╛рд╕ рдмреЙрдХреНрд╕ рдХреЗ рднреАрддрд░ рд╣реИрдВ)ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдЦреНрдд рдЪреЗрддрд╛рд╡рдиреА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛рддреА рд╣реИред рдореИрдВ рдЙрдирд╕реЗ рдХрд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЗрди рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ рдФрд░ рдЬрд╣рд╛рдВ рд╕рдВрднрд╡ рд╣реЛ рдФрд░ рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕рд░рд▓ рд╣реЛрдВ, рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЖрдпрд╛рдд рдХрд░реЗрдВред рдЪреВрдВрдХрд┐ рдЗрди рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдЬрд╛рд░реАрдХрд░реНрддрд╛ рдХрд╛ рдирд╛рдо рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдирдпрд╛ рд╡реЗрдм рдРрдк рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдкреГрд╖реНрда рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ

рдореИрдВ рдпрд╣ рд╕реЛрдЪрдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдХрд┐рд╕реА рдХреЗ рд╕рдВрдЧрдарди рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рдкреГрд╖реНрдареЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред

рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рдПрдХ рдЧреИрд░-рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдХреБрдЫ рдЪреАрдЬрд╝реЗрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ:

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

  • рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдИрдЖрдИрдПрд╕ рдФрд░ рдХреЗрд╕реНрдЯреНрд░реЗрд▓ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╕рднреА рд╕рд╣реА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕реНрдЯреЛрд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рддрд╛ рд╣реИ

@ рдХреНрд░рд┐рд╕реНрдкрд┐рдирдПрдЪ рдПрдХ рд░реВрдЯ рд╕реАрдП рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд░реВрдЯ рд╕реАрдП рдХреЛ рдХрддрд╛рдИ рдХрд░рдиреЗ рдХреА рдЪрд┐рдВрддрд╛ рд╣реЛрдЧреАред рдпрджрд┐ рдЖрдк рдЙрд╕ рдмрд┐рдВрджреБ рдкрд░ рд╣реИрдВ рддреЛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рдПрдХ рд░реВрдЯ рд╕реАрдП рдХреЛ рд╕реНрдкрд┐рди рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рдорд░реНрдерди, рднрд▓реЗ рд╣реА рд╡реИрд╢реНрд╡рд┐рдХ рдЙрдкрдХрд░рдг рдпрд╛ рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд┐рд░реНрдл рдЙрд╕реА рдХреЗ рд▓рд┐рдП рд╣реИ, рд╡рд┐рдХрд╛рд╕ред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕рд╕реЗ рдЬреБрдбрд╝рдиреЗ рджреЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЙрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╕рдВрдЧрдарди рдореЗрдВ рд╣реИрдВ рдФрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдЧ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддреЛ рд╕рдВрдЧрдарди рдХреЛ рдЕрдкрдиреА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд░рдгрдиреАрддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд╡рд┐рдВрдбреЛрдЬ рдпрд╛ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЖрдВрддрд░рд┐рдХ рд╕реАрдП рдЪрд▓рд╛рдирд╛ рдФрд░ рдПрдбреА рдиреАрддрд┐ рдпрд╛ рдЕрдиреНрдп рдорд╛рдзреНрдпрдореЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реВрдЯ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред

@blowdart рдореЗрд░реЗ
рдореБрдЭреЗ рдорд┐рд▓реЗ рд╕рднреА рджрд╕реНрддрд╛рд╡реЗрдЬ рдмрд╣реБрдд рд╕рд╛рдорд╛рдиреНрдп рдереЗ - рдореИрдВ рдХреЗрд╡рд▓ рдПрдХ рд╕рд░реНрд╡рд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдХреЗ рд╕рд╛рде рдПрдкреАрдЖрдИ рдФрд░ рд╡реЗрдм рдРрдкреНрд╕ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рдорд╛рдг рдкрддреНрд░ (рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд░реВрдЯ рд╕реАрдП рдкрд░ рдЖрдзрд╛рд░рд┐рдд) рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рд╢рд╛рдпрдж рд╡рд┐рд╢рд┐рд╖реНрдЯ-рдорд╛рдорд▓реЗ рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

@CrispinH рд╡рд┐рдВрдбреЛ рд╕рд░реНрд╡рд░ рдПрдХ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдЕрдереЙрд░рд┐рдЯреА рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдЧрд░ рдЖрдк рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╕рд╛рди рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЖрдк рдЗрд╕реЗ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлрд╝реА рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛ред

рджреЗрд╡ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИрдВред рд╕реАрдП рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдкреНрд░рдмрдВрдзрди рд╕рд╣рд┐рдд рдЙрд╕рд╕реЗ рдЖрдЧреЗ рд╕рдм рдХреБрдЫ, рдЕрдм рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ рдФрд░ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рд╣реИред

@CrispinH рдЬреИрд╕рд╛ рдХрд┐ @poke рдиреЗ рдХрд╣рд╛ рдХрд┐ рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рдХрдард┐рди рд╣реИред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд░реВрдЯ рд╕реАрдП рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдорд╢реАрдиреЗрдВ рд╣реЛрдВ рддреЛ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рджреЗрд╡ рдЕрдкрдиреЗ рджреЗрд╡ рдмреЙрдХреНрд╕ рдкрд░ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХреЛрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдпрд╣реА рдирдЧреЗрдЯ рдкреИрдХреЗрдЬ рд╣реИрдВред рддреЛ рдХреБрдЫ рдРрд╕рд╛ рд╕реЛрдЪреЗрдВ рдЬреЛ рдЖрдкрдХреЗ рд░реВрдЯ CA рдХреЛ рдЪреБрд░рд╛ рд▓реЗред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдореЗрдВ рд░реВрдЯ рд╕реАрдП рдХреЛ рдСрдлрд╝рд▓рд╛рдЗрди рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рдПрдХ рджреВрд╕рд░реЗ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдореЗрдВ рд╡рд┐рд╡рд╢ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЙрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдЬрд╛рд░реА рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рджреЗрд╡ рд╕реАрдП рд╡рд┐рд╡рд╢ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдордЭреМрддрд╛ рдХрд╛ рдЕрд░реНрде рд╣реЛрдЧрд╛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдХреЛрдб рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рд░реА рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдмрд┐рдирд╛ рдорддрд▓рдм рдХреЗ рд╕реАрдП рдХрд╛ рдмрд╣реБрдд рдЕрдкрдорд╛рди рдХрд░рдирд╛ рдХреЛрдИ рдРрд╕реА рдЪреАрдЬ рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рджреЗрд╡ рдХреЛ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЬреЛ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рднрдпрд╛рдирдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд░реЛрдЯреЗрд╢рди, рдирд┐рд░рд╕рди, рдУрд╕реАрдПрд╕рдкреА рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реЗ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдСрде рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрд╕реНрдЯ рд╕реАрдП рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрд╣ рдПрдХ рд╡реАрдПрдо рдореЗрдВ рд╣реИ рдЬреЛ рдмрдВрдж рд╣реИред рдЬрдм рдореИрдВ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдмрд╣реБрдд рдШрдмрд░рд╛ рдЬрд╛рддрд╛ рд╣реВрдВред

рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕ рдореВрд▓ (рд╕рдЬрд╛ рдХрд╛ рдЗрд░рд╛рджрд╛) рдиреАрдЪреЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ https://infiniteloop.io/powershell-self-signed-certificate-via-self-signed-root-ca/ рдЖрдкрдХреЛ рдкреЙрд╡рд░рд╢реЗрд▓ рдореЗрдВ рдЖрд░рдВрдн рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ рдХреЛрдИ CRL рдпрд╛ OCSP рдпрд╛ рдирд┐рд░рд╕рди рд╕рдорд░реНрдерди рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред https://gist.github.com/Soarez/9688998 рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЖрдкрдХреЛ рд╕реАрдЖрд░рдПрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рд╡рд┐рдВрдбреЛрдЬрд╝ рдореЗрдВ рд╕реАрдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдпрд╣рд╛рдВ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИ https://leastprivilege.com/2008/08/14/how-to-build-a-developmenttestdemo-ca/

_рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рдХрд┐рд╕реА рднреА рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд▓реЗрдЦрдХ рдкрд░ рднрд░реЛрд╕рд╛ рд╣реИ), рдФрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдпрд╣ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ MSFT рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рд╣реИред ASP.NET рд╕реБрд░рдХреНрд╖рд╛ рдЯреАрдо рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдпрд╣ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдРрд╕реЗ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЬреЛ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдФрд░ рдЬреЛрдЦрд┐рдореЛрдВ рдХреЛ рд╕рдордЭрддрд╛ рд╣реИ, рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд░реНрдкреЛрд░реЗрдЯ CA рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗред рдЕрдкрдиреЗ рдЖрдИрдЯреА рд╡рд┐рднрд╛рдЧ рд╕реЗ рдмрд╛рдд рдХрд░реЗрдВ_

@blowdart рдирд╣реАрдВ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ 'рд░реВрдЯ' рд╕реЗ рдиреАрдЪреЗ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ред рдпрд╣ рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ рдЕрдм рдХреНрдпреЛрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд╣реНрдпреВрдордиреЙрдЗрдб рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд▓реЗрдЯреНрд╕ рдПрдирдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╣реЛрд╕реНрдЯ рдкрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рджреАрд╡рд╛рд░ рдХреЗ рд╕рд╛рде рдЪреБрднрддреА рдЖрдБрдЦреЛрдВ рдХреЛ рджреВрд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдПред

рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЖрдкрдХреЗ рдмрдЬрдЯ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, DigiCert рдЬреИрд╕реА рдХреБрдЫ рдХрдВрдкрдирд┐рдпрд╛рдВ рдкреНрд░рдмрдВрдзрд┐рдд PKI рд╕реЗрд╡рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред рд╡рд╣ рдирд┐рдЬреА рд░реВрдЯ рдпрд╛ рдЙрдирдХреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рд▓рд╛рдЧрдд рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред

рдФрд░ рдЕрдЧрд░ рдпрд╣ рдХреЗрд╡рд▓ HTTPS рд╣реИ рддреЛ рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдкреНрд░рддреНрдпреЗрдХ azurewebsites.net рд╕рдмрдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдорд┐рд▓рддрд╛ рд╣реИред

IdentityServer4 рдХреЗ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рд╕реАрдЦрдиреЗ, рдЕрдкрдирд╛рдиреЗ рдФрд░ рд╕рдВрд▓рдЧреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрдЬрд╛рдп, рдирдП OpenID рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ рдФрд░ рдПрдХ рдУрдкрд┐рдиреЗрдЯреЗрдб IdentityServer "рд▓рд╛рдЗрдЯ" рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдиреЗ рдореЗрдВ рдпреЛрдЧрджрд╛рди рдХрд░реЗрдВ рдЬрд┐рд╕реЗ nuget рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд╕рд╛рде рд╕реЗрдЯрдЕрдк рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдк рд╕рднреА рдУрд╡рд░рд░рд┐рдПрдХреНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
ASP.NET рдЯреАрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдк рд╕рднреА рдХреА рддрд░рд╣ рд╕реЛрдЪ рд░рд╣реА рд╣реИред @DamianEdwards рдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рд╣рд╛рд▓рд┐рдпрд╛ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ

рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрдХреЛ рдпрд╣ рд╕рдм рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ):

"рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ IdentityServer рд▓реЛрдЧреЛрдВ рд╕реЗ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред"
https://youtu.be/Tzh2EXwgEk8?t=25m15s

рдпрд╣ рджреЗрдЦрдирд╛ рд╡рд╛рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХрд┐ "рдПрдордПрд╕рдПрдлрдЯреА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░" рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХрд┐рддрдиреА рднрд╛рд╡реБрдХ рд╣реИ: рдореБрд╕реНрдХрд╛рди:

рд╕рдВрдпреЛрдЧ рд╕реЗ, рд╡рд┐рдЯреЛрд░рд┐рдпреЛ рдмрд░реНрдЯреЛрдХреА рдиреЗ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ 2 рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореБрдЭрд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ OpenIddict (рдУрдЖрдИрдбреАрд╕реА рд╕рд░реНрд╡рд░ рдЬрд┐рд╕реЗ рдореИрдВ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реВрдВ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓, рдореБрдЭреЗ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╡реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ OSS рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЬрд╛рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рдереЗ рдХреНрдпреЛрдВрдХрд┐

рдореБрдЭреЗ рдпрд╣ рджреЗрдЦрдХрд░ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдирд╛ рд╡рд┐рдЪрд╛рд░ рдмрджрд▓ рджрд┐рдпрд╛ рдФрд░ рдЕрдВрдд рдореЗрдВ рдореМрдЬреВрджрд╛ OSS рд╕рдорд╛рдзрд╛рди рдЬреИрд╕реЗ IdentityServer4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рд╕реНрдХреНрд░реИрдЪ рд╕реЗ рдПрдХ рдФрд░ рдЪреАрдЬрд╝ рдмрдирд╛рдИ рдЬрд╛рдП: рдпрд╣ .NET рд╕рдореБрджрд╛рдп рдХреЛ рднреЗрдЬрд╛ рдЧрдпрд╛ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рдВрдХреЗрдд рд╣реИ: рдХреНрд▓реИрдк:

рдпрд╣ рдереНрд░реЗрдб рд╕реЗ рдереЛрдбрд╝рд╛ рд╣рдЯрдХрд░ рд╣реИ, рд▓реЗрдХрд┐рди @ рдХреНрд░рд┐рд╕реНрдкрд┐рдирдПрдЪ , рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреБрдЫ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ https://stackoverflow.com/questions/51123289/how-to-generate-a-response-to-a-csr- рдЗрди-рдиреЗрдЯ-рдХреЛрд░-рдпрд╛рдиреА-рдЯреВ-рд░рд╛рдЗрдЯ-рдП-рд╕реАрдПрд╕рдЖрд░-рд╣рд╕реНрддрд╛рдХреНрд╖рд░-рд╕реЗред .NET Core 2.0 рдореЗрдВ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдмрдирд╛рдиреЗ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╕реБрд╡рд┐рдзрд╛рдПрдВ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рд╕реАрдП рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рджреЗрдЦреЗрдВред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЯреВрд▓рд┐рдВрдЧ рд▓рдЧрднрдЧ рд╡рд╣рд╛рдВ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рд╕рдВрдЧрдарди рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдХреБрдЫ рд╕рд░реНрд╡рд░ рдореЗрдВ рдХреБрдЫ рдирд┐рдпрдВрддреНрд░рд┐рдд рдлреИрд╢рди рдореЗрдВ рдкреНрд░рдорд╛рдг рдкрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд┐рдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЗрдВрдЯреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ рд╕реЗрдЯ рдХрд┐рдПред рдЙрд╕ рдЯреЛрдХрди рдкрд░, (рдбреАрдИрдЖрд░ рдПрдиреНрдХреЛрдбреЗрдб) рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЕрдиреБрд░реЛрдз (рд╕реАрдПрд╕рдЖрд░) рдЖрдЙрдЯ-рдСрдл-рдж-рдмреЙрдХреНрд╕ рдкрдврд╝рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЛрдЧрд╛ - рдПрдХ JSON-LD рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рдеред рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рдХреНрд░рд┐рдкреНрдЯреЛред :)

рдореБрдЭреЗ рдХреБрдЫ рдорд┐рдбрд▓рд╡реЗрдпрд░ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдЬреИрд╕реЗ LetsEncrypt рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди - рд╡рд┐рдВрдбреЛрдЬрд╝, рд▓рд┐рдирдХреНрд╕ рдФрд░ рдПрдЬрд╝реВрд░ рдореЗрдВ рдбреЙрдХрд░ рдореЗрдВ рдРрдк рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред

@kieronlanning рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦрд┐рдд рд╕реАрдПрд╕рдЖрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдбреАрдИрдЖрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рдЕрд▓рд╛рд╡рд╛ (рдпрджреНрдпрдкрд┐ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╕рдорд░реНрдерди рдЬреЛрдбрд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ)ред .NET рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ (рд▓реЗрдЯреНрд╕ рдПрдирдХреНрд░рд┐рдкреНрдЯ рдкреЗрдЬ рдкрд░ рднреА рд╕реВрдЪреАрдмрджреНрдз рд╣реИрдВ), рд▓реЗрдХрд┐рди рдереЛрдбрд╝реА рдкрд░реЗрд╢рд╛рдиреА рднреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдХреА рддрд░рд╣ рдЖрдЗрдП Encryptc рдПрдХ рджрд┐рдЦрддрд╛ рд╣реИ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕рдмрд╕реЗ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдмрдирд╛рдП рд░рдЦрд╛ рдиреЗрдЯ Certes , рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд░ рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рд▓реЗрддрд╛ BouncyCastle ред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдХрд┐рд╕реА рдиреЗ рдЗрд╕реЗ рдХреЗрд╡рд▓ .NET рдорд╛рдирдХ 2.0 рд╣реЛрдиреЗ рдореЗрдВ рдорджрдж рдХреАред рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдмрд╛рдЙрдВрд╕реАрдХрд╛рд╕реНрдЯрд▓ рдСрд░рд▓рд┐рдпрдиреНрд╕ TaskScheduler рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред :)

рдХреНрд░рд┐рдкреНрдЯреЛ рдЙрд▓реНрд▓реЗрдЦ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдЦреНрддреА рд╕реЗ ASP.NET рдХреЛрд░ рдореБрджреНрджрд╛ рдирд╣реАрдВ рд╣реИ, MS рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдмреНрд▓реЙрдХрдЪреЗрди рдкрд░ рдмрд╣реБрдд рдЬреЛрд░ рджреЗ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди .NET рдореЗрдВ рдХреНрд░рд┐рдкреНрдЯреЛ рдХреНрд╖рдорддрд╛ рдХрд╛ рдЕрднрд╛рд╡ рд╣реИред _рд╕рддрд╣ рдкрд░_ рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдХреБрдЫ ASP.NET рдХреЛрд░ рдХреЗ рд╕рд╛рде рднреА рд╣реИ (рдЬреИрд╕реЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд┐рдиреНрди рдмреНрд▓реЙрдХрдЪреЗрди рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди, рдЬреИрд╕реЗ рдХрд┐ https://etherscan.io/) рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЗрдиреНрдлрд░реНрдиреЛ рдЬреИрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдореЗрдВ рдмреЗрдХ рдХреА рдЧрдИ рдЕрдзрд┐рдХ рдХреНрд╖рдорддрд╛рдПрдВред рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдореБрджреНрджрд╛ https://github.com/sdrapkin/SecurityDriven.Inferno/issues/10#issuecomment -395778931 рдкрд░ рд╣реИ (рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╣реИ рддреЛ рдпрд╣рд╛рдВ рдХреБрдЫ рдЖрдВрдЦреЗрдВ рдЙрдзрд╛рд░ рджреЗрдирд╛)ред

рдпрд╣ @kieronlanning рд╕реЗ рдореЗрд░рд╛ рдирдВрдмрд░ рдПрдХ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рд╣реЛрдЧрд╛:

"рдореБрдЭреЗ LetsEncrypt рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреИрд╕реЗ рдХреБрдЫ рдорд┐рдбрд▓рд╡реЗрдпрд░ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред"

рдпрд╣рд╛рдБ рдЦреБрд▓рд╛ рдореБрджреНрджрд╛ рд╣реИ: https://github.com/aspnet/Home/issues/1190ред рдХреГрдкрдпрд╛ рдЬрд╛рдХрд░ рдЗрд╕реЗ рдЕрдкрд╡реЛрдЯ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдЗрд╕реЗ рдПрдПрд╕рдкреАрдиреЗрдЯ рдХреЛрд░ рдкрд░ рд╕рднреА рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рди рдХреЗрд╡рд▓ рд╕рд┐рдЧреНрдирд▓рдЖрд░ рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢рдкреИрдХ рдорд╛рдирд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ? рдЪреВрдВрдХрд┐ рдПрдЪрдЯреАрдкреА 2 рдлреНрд░реЗрдорд┐рдВрдЧ рдмрд╛рдЗрдирд░реА рд╣реИ, рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрд╕реЗрдЬрдкреИрдХ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди3 рдкрд░ рдЬрд╛рд░реА рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░?

рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИред Https://IdentityServer.io

@рдХрдо рд╕реЗ рдХрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░
рдореБрдЭреЗ IdentityServer рдкрд╕рдВрдж рд╣реИ рдФрд░ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ
рд▓реЗрдХрд┐рди рдореИрдВ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрддреНрд╕реБрдХ рд╣реВрдВ рдФрд░ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпреЛрдВ (рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ) рдиреЗ рдЖрдкрдХреЗ рдХреЛрд░ рдореЗрдВ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛

@ danroth27 - рдХреНрдпрд╛ рдЖрдк рдирд╡реАрдирддрдо рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

Microsoft IdentityServer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

рддреЛ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ? Microsoft рд╕реАрдзреЗ IDS4 рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ? Microsoft рдиреЗ IDS4 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рдХрдЯреМрддреА рдХреА? рдпрд╣рд╛рдБ рдореЙрдбрд▓ рдХреНрдпрд╛ рд╣реИ? рд╣рдорд╛рд░реА рдЕрдкреЗрдХреНрд╖рд╛рдПрдВ рдХреНрдпрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП? рдХреНрдпрд╛ рдЙрдирдХреЗ рдмреАрдЪ рдХреЛрдИ рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рд╡рд╛рд╕ рдкрде рд╣реИ?

Microsoft рд╣рдорд╛рд░реЗ рдорд╛рдирдХ nuget рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ рдФрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ ASP.NET рдкрд╣рдЪрд╛рди рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдмрд╕ рдЗрддрдирд╛ рд╣реАред

рдЖрдк рдареАрдХ рд╡рд╣реА рдЪреАрдЬрд╝ рдЖрдЬ рдкрд╣рд▓реЗ рд╣реА рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣ рд╢рд╛рдпрдж рдореИрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдкрдврд╝рдХрд░ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ Microsoft рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдХрд╛ рдЕрдВрддрд░ IdentityServer4 рджреНрд╡рд╛рд░рд╛ рднрд░рд╛ рдЧрдпрд╛ рд╣реИред рдореЗрд░реА рд╕рдордЭ рдХреЗ рдЕрдиреБрд╕рд╛рд░ IdentityServer рдХреА рдореБрдЦреНрдп рдЪрд┐рдВрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реИ, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдирд╣реАрдВред

рдореЗрд░реЗ рд▓рд┐рдП IdentityServer рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдорд╛рдирд╛ рдХрд┐ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдкреЙрд▓рд┐рд╕реАрд╕реЗрд╡рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

@leastprivilege рдХреНрдпрд╛ IdentityServer рдХреЛ PolicyServer рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рд╕рд╛рде рдмрдврд╝рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛?

@Ruard рддреЛ рдпрд╣ рднреНрд░рдорд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ (рдФрд░ рдбреЛрдорд┐рдирд┐рдХ рд╢рд╛рдпрдж рдореЗрд░реЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдкрд░

OAuth рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рдЪрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╣реИ, рдФрд░ рдлрд┐рд░ рд╕реНрдХреЛрдк рдЖрджрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдиреБрджрд╛рди рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд░реИрдкрд┐рдВрдЧ рдореЗрдВ, рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ рд▓реЙрдЧрд┐рди рдХрд░реЗрдЧрд╛, рдЗрд╕реЗ рдорд╛рдиреНрдп рдХрд░реЗрдЧрд╛, рдЖрд╡рд╢реНрдпрдХ рд╕реНрдХреЛрдк рдХреЛ рдорд╛рдиреНрдп рдХрд░реЗрдЧрд╛ (рдЬреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реЛрдЧрд╛ рд╣рдореЗрд╢рд╛ рд╕рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдХреЛрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ), рдлрд┐рд░ рдХреЙрд▓рд░ рдХреЛ рдПрдХ рдЯреЛрдХрди рд╡рд╛рдкрд╕ рдкрд╛рд╕ рдХрд░реЗрдВ, рдЬреЛ рддрдм рдПрдкреАрдЖрдИ рдХреЛ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдорд╛рдиреНрдп рдХрд░реЗрдЧрд╛, рдФрд░ рдлрд┐рд░, рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдк рдПрдкреАрдЖрдИ рдХреЗ рднреАрддрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред OIDC рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╣рдЪрд╛рди рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг OIDC рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рднреНрд░рдорд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ рдХрд┐ рдРрдк рдХреЛ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ ...

рдЗрд╕рд▓рд┐рдП, рдореВрд▓ рд░реВрдк рд╕реЗ, рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ рд╣рдореЗрдВ рдПрдХ рдкрд╣рдЪрд╛рди рджреЗрдЧрд╛, рдпрд╣ рдЕрдзрд┐рдХреГрдд рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдРрдк рдХреЛ рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЖрдк рдкрд╣реБрдВрдЪ рдХреЛ рдФрд░ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ASP.NET рдХреЗ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЯреБрдХрдбрд╝реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

@ рдорд┐рдЪреЗрд▓рдЬреЗрдб рдПрдХ рдмрдбрд╝реЗ рд╣реЛрдиреЗ рдХреА рдХрд╣рд╛рдиреА рд╣реЛрдЧреАред рд╣рдо рд╕рд░рд▓ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЙрдирд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдк IdentityServer рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЙрдбрд▓ рдХреА рдкреВрд░реА рд╢рдХреНрддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВред

@blowdart рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА IdentityServer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдФрд░ рдХреНрд╖рдорддрд╛рдУрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИрдВ!), рд╣рд╛рд▓рд╛рдБрдХрд┐ Microsoft рдХреА "рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ-рд╕рдорд░реНрдерди" рдиреАрддрд┐рдпреЛрдВ рд╕реЗ рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рднреА рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдХ рдмрдбрд╝рд╛ рдкреНрд▓рд╕ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЖрдк рдпрд╣рд╛рдВ рдЬреЛ рднреА рддрд╛рд▓рдореЗрд▓ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрд╕рдХрд╛ рдмрд╣реБрдд-рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рд╣рдо рджреЛрдиреЛрдВ рдЙрддреНрдкрд╛рджреЛрдВ, ASP.NET Core рдФрд░ IdentityServer (4) рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рджрд┐рд╢рд╛ рдореЗрдВ рдПрдХ рдХрджрдо рд╣реИ IMHOред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рдпрд╣ рднреА рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпреЗ рд╕рднреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдмрд┐рд▓реНрдХреБрд▓ "рд╕реАрдзреЗ рдЖрдЧреЗ" рдирд╣реАрдВ рд╣реИрдВред рд╡реЗ рд░реЙрдХреЗрдЯ рд╕рд╛рдЗрдВрд╕ рдирд╣реАрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╕рдордЭрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рд╡реЗ рд╕реАрдзреЗ рдЖрдЧреЗ рднреА рдирд╣реАрдВ рд╣реИрдВред

рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░реЗрдЧрд╛, рд╕рднреА рд╡рд┐рд░рд╛рд╕рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝рдХрд░ рднрд╡рд┐рд╖реНрдп рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ред

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛, рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ :)

рд╣рдо рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдирдИ > рд╡реЗрдм рдПрдкреАрдЖрдИ рдкрд░ рд▓рдХреНрд╖реНрдп рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЕрдиреНрдп рдПрдкреАрдЖрдИ рдЬреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╕рдм рдХреБрдЫ рд╕рдореНрдореЗрд▓рди рдЖрдзрд╛рд░рд┐рдд рд╣реИред рдпрд╣ рдореМрдЬреВрджрд╛ рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдореНрдореЗрд▓рди рдирдП рд╣реЛрдВрдЧреЗред рдореИрдВ рдЖрдкрдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рд╣рдорд╛рд░реЗ рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рдмрдирд╛рдКрдВрдЧрд╛ :)

рдореЗрд░реА рдЗрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░рд▓ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░реЗрдЧрд╛, рд╕рднреА рд╡рд┐рд░рд╛рд╕рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдкреАрдЫреЗ рдЫреЛрдбрд╝рдХрд░ рднрд╡рд┐рд╖реНрдп рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдЧрд╛ред

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ - рдРрдкреНрд╕ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рд░рд╣реЗ рд╣реИрдВ рдХрдо рдирд╣реАрдВред рдЗрдирдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛ рднреА рдЬрдЯрд┐рд▓ рд╣реИред рдЬрдм рдореИрдВ рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рд╕реБрдирддрд╛ рд╣реВрдВ рдХрд┐ IdentityServer рдЬрдЯрд┐рд▓ рд╣реИ, рддреЛ рдореИрдВрдиреЗ рд╣рдореЗрд╢рд╛ рдкреАрдЫреЗ рдзрдХреЗрд▓рд╛ рд╣реИ - рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдЬрдЯрд┐рд▓ рд╣реИрдВред рдЕрдХреНрд╕рд░ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рдкрд╣рдЪрд╛рдирдиреЗ рдХрд╛ рдирдЬрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ред

рд╣рд╛рдВ, рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ - рдФрд░ рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рдЖрд╢реНрд╡рд╛рд╕рди рдЖрдкрдХреЛ рджреЗ рд╕рдХрддрд╛ рд╣реИ, рдЬрдм рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ "рд╕рдорд░реНрдерди" рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрддрдГ рдПрдХ рддрдХрдиреАрдХ рдХрд╛ "рд╕рдорд░реНрдерди" рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╢реБрджреНрдз рд╕реЛрдирд╛ рд╣реИ ....!
рдЖрдкрдХреЛ рдПрдХ рдмрд┐рд▓реНрдХреБрд▓ рдирдП рд╕реНрддрд░ рдкрд░ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рд╣реИ!

@brockallen рд╣рд╛рдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢рд╛рдпрдж рдЪреАрдЬреЛрдВ рдХреЛ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, OIDC рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдирд┐рд░реНрд╡рд┐рд╡рд╛рдж рд░реВрдк рд╕реЗ OAuth 2.0 рд╕реЗ рдХреБрдЫ рд╕рд╛рдорд╛рди рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдХрд┐ рд╡рд╣ рд╣рд┐рд▓ рдЬрд╛рдПред рдЖрдкрдХреА рдЯреАрдо рдХреЗ рдХреБрдЫ рд╕рджрд╕реНрдпреЛрдВ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ @leastprivilege рдерд╛) рдиреЗ рдХрд╣рд╛ рдерд╛ рдХрд┐ рдЕрдЧрд░ рдУрдЖрдИрдбреАрд╕реА рдХреЛ рдЬрдореАрди рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рддреЛ рдпрд╣ рд╢рд╛рдпрдж рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реЗ рдХрд╛рдлреА рдЕрд▓рдЧ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

рдореИрдВ рдпрд╣ рдирд╣реАрдВ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ "рдЦрд░рд╛рдм" рд╣реИ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЬреЛ рдХреБрдЫ рднреА рд╣реИ рдЙрд╕рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЛ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдХрд╛рдо рдкрд░ рдЧрд░реНрд╡ рд╣реИ!

@рдЯреАрдо;
рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди 3 рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ "рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░" рдкрд░ рдХреБрдЫ рд╡рд┐рд╡рд░рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╡реЗрдм рдПрдкреАрдЖрдИ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдЬреЗрдПрд╕, рдЬреИрд╕реЗ Vue рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛?
рд╣рдореЗрдВ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдкрд░ рдпрд╣ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╣реИ рдФрд░ рдХреЛрдИ рднреА рд╡рд┐рд╡рд░рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣рдореЗрдВ рд╣рдорд╛рд░реЗ рдирд┐рд░реНрдгрдп рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рдж!

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереА

https://identityserver.io

рдЕрднреА-рдЕрднреА рджреЗрдЦрд╛ рдХрд┐ рдпреВрдПрд╕ рдУрдкрди рдбреЗрдЯрд╛ рдПрдкреАрдЖрдИ JSON-LD рдореЗрдВ рд╣реИрдВ: https://project-open-data.cio.gov/v1.1/schema/ ред рдпрд╣ рдПрдХ рддреЗрдЬреА рд╕реЗ рдмрдврд╝рддреА рдкреНрд░рд╡реГрддреНрддрд┐ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП ASP.NET рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╕рдВрд╕рд╛рдзрди рд╡рд╛рд▓реА JSON-LD .NET рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдЪреНрдЫреА рд╣реЛрдЧреАред :)

@veikkoeeva рддреЛ NuGet APIs (рдХрдо рд╕реЗ рдХрдо рд╣рд┐рд╕реНрд╕рд╛) рд╣реИрдВред рд╡реЗ json-ld.net рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдХрд┐рд╕реА рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

@рдЦреЗрд▓рдВрдЧ рдФрд░ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рднреА рд╣реИрдВ, рдпрд╣ рд╡рд┐рд╢реЗрд╖ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (https://github.com/linked-data-dotnet/json-ld.net/issues/26)ред рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╣реИ рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдореИрдВ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рдЙрдард╛ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореИрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкрддрд▓рд╛ рд╣реВрдВред рдЕрдиреНрдпрдерд╛ рд░рдЦреЗрдВ, рд╢рд╛рдпрдж, рдореИрдВ рдЗрд╕ рдмрд╛рдд рдкрд░ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреА рдУрд░ рдмрдврд╝ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ .NET рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреБрд╢рд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред

IMHO, ASP.Net рдХреЛрд░ рдХреЗ рдореВрд▓ рдореЗрдВ IdentityServer4 рдЬреЛрдбрд╝реЗрдВ рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред
рдХреГрдкрдпрд╛ .NetCore рдХреЛ рдПрдХ рдЕрдЦрдВрдб рдврд╛рдВрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рди рдмрдирд╛рдПрдВред
.NetCore рд╡рд╣рд╛рдБ рд╣реИ рдФрд░ IdentityServer4 рд╡рд╣рд╛рдБ рд╣реИ, рд▓реЛрдЧ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдЖрдзрд╛рд░ рдмрдирд╛рддреЗ рд╣реИрдВред

@mikeandersun рдпреЛрдЬрдирд╛ рдХреЗрд╡рд▓ рдПрдХ рдЖрд╕рд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдк рдЕрднреА рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЖрдкрдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЖрдк рдЕрднреА рднреА IdSrv рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЕрднреА рднреА рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреМрди рд╕реЗ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рд╣реИрдВред рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА ASP.NET Core рдХреЛ рдЕрдЦрдВрдб рдирд╣реАрдВ рдмрдирд╛ рд░рд╣рд╛ рд╣реИред

ASP.NET рдХреЛрд░!= .NET рдХреЛрд░ btwред

рдХреНрдпрд╛ 2.2 рдПрд▓рдЯреАрдПрд╕ рд░рд┐рд▓реАрдЬ рд╣реЛрдЧреА? (рдпрд╣ рдкреВрдЫрддреЗ рд╣реБрдП рдХрд┐ рдХреНрдпрд╛ рдЗрд╕рдХреА рдкрд╣рд▓реЗ рд╣реА рдШреЛрд╖рдгрд╛ рдХреА рдЬрд╛ рдЪреБрдХреА рд╣реИ, рдЖрдкрд╕реЗ рдХреЛрдИ рдирдИ рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред)

@yzorg рдирд╣реАрдВ рдЬрд┐рд╕рдХреА рдШреЛрд╖рдгрд╛ рдирд╣реАрдВ рдХреА рдЧрдИ рд╣реИред рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рдг рдЕрдХреНрд╕рд░ рдЧреБрдгрд╡рддреНрддрд╛/рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░рд┐рд▓реАрдЬ рдХреЗ рдмрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@blowdart , рдХреНрдпрд╛ рдпрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ рдПрдХ рдПрдкреАрдЖрдИ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╡реЗрдм рдРрдк рдПрдорд╡реАрд╕реА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛?

@Ponant рдирд╣реАрдВред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреЗрд╡рд▓ рдПрдкреАрдЖрдИ рд╣реИред рд╣рдо 3.x рдЯрд╛рдЗрдорд▓рд╛рдЗрди рдореЗрдВ рдЗрд╕рдХрд╛ рдкреБрдирд░реНрдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВрдЧреЗред

рджрд┐рд▓рдЪрд╕реНрдк... рдпрд╣ рдкреНрд░рд╢реНрди рдХрд▓ рдПрдХ рдмреИрдардХ рдореЗрдВ рдЖрдпрд╛ рдерд╛ред рдпрджрд┐ рд╣рдо рд╡реЗрдм рдПрдкреАрдЖрдИ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдкреВрд░реНрдг "рдПрдорд╡реАрд╕реА" рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рд╣рдо рдирдП рдПрдПрд╕рдкреА.рдиреЗрдЯ 2.2 рдЖрдИрдПрд╕ 4 рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ 2.2 рдореЗрдВ рдПрдХреАрдХреГрдд рд╣реИ?
рд▓рдЧрддрд╛ рд╣реИ рдмрд┐рдЧ рдмреЙрд╕ (рдмреИрд░реА) рдиреЗ рдЕрднреА-рдЕрднреА рд╕рд╡рд╛рд▓ рдХрд╛ рдЬрд╡рд╛рдм рджрд┐рдпрд╛ред

@blowdart рдПрд▓рд┐рдпрд╛рд╕ рдмрд┐рдЧ рдмреЙрд╕: рдпрд╣ рдПрдХ рд╢реЙрдЯ рдореЗрдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рдПрдПрд╕рдкреАрдиреЗрдЯ рдХреЛрд░ рдкрд╣рдЪрд╛рди рдЖрдИрдПрд╕ 4 рд╕рд░реНрд╡рд░ рд╕реЗ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рдПрдорд╡реАрд╕реА рдХреНрд▓рд╛рдЗрдВрдЯ рдпрд╛ рд╡реЗрдм рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реА рдирдЬрд░ рдореЗрдВ рдпрд╣ рдЫреЛрдЯрд╛ рд▓рдЧрддрд╛ рд╣реИред

@Ponant рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрдирдВрдд рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рд╣реИрдВред рдПрдорд╡реАрд╕реА рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдПрдХ рдмрдбрд╝реЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рд░ рдХрд┐рд╕реА рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рд╣рдореЗрдВ рдХреМрди рд╕реА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ рдЬреЛ рдХреЛрдИ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдирд╣реАрдВ рджреЗрдЧрд╛, рдмрд╕ рдПрдХ рдореМрдЬреВрджрд╛ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рдПрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рдорд╛рдгрд┐рдд рдПрдкреАрдЖрдИ рдкреВрд░реНрдг рдврд╛рдВрдЪреЗ рдФрд░ ASP.NET рдХреЛрд░ рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рд░рд╣рд╛ рд╣реИред рдХрд╛рдо рдХрд╛ рдлреЛрдХрд╕ рдЙрд╕ рдЧреИрдк рдХреЛ рднрд░рдиреЗ рдкрд░ рдерд╛ред рдЖрдЗрдбреЗрдВрдЯрд┐рдЯреА рд╕рд░реНрд╡рд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдорд╡реАрд╕реА рдХреЗ рд▓рд┐рдП "рдХреЛрд░" рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЗрдбреЗрдВрдЯрд┐рдЯреА рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╡рд░реНрдХрд┐рдВрдЧ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╣реИрдВред

@CrispinH @blowdart рдореИрдВ рдЖрдкрд╕реЗ рдкреВрд░реА рдЧрд░реНрдордЬреЛрд╢реА рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╢рд╛рд╕рди, рднреВрдорд┐рдХрд╛рдПрдВ, рдХрд┐рд░рд╛рдпреЗрджрд╛рд░реА рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╕рдореВрд╣реЛрдВ рдХреА рд╕рдЦреНрдд рдЬрд░реВрд░рдд рд╣реИред рдЗрд╕реЗ рджреЗрдЦреЗрдВ - рдЗрд╕ рд╕реИрдХрдбрд╝реЛрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдХрдВрдкрдирд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ

-> рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рд╕рдореВрд╣/рдХрд┐рд░рд╛рдпреЗрджрд╛рд░ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЗрддрдиреЗ рд╕рд╛рд░реЗ рдЕрдиреБрд░реЛрдз

image


--> рдлрд┐рд░ рд╕реЗ рдпрд╣рд╛рдВ рд▓реЛрдЧ рд╢рд┐рдХрд╛рдпрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ ... рдпрд╣ рдЪрд▓рддрд╛ рд░рд╣рддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЯреНрд╡рд┐рдЯрд░ рдФрд░ рдлреЗрд╕рдмреБрдХ рдкрд░ рднреА.. рдпрд╣реА рдХрд╛рд░рдг рд╣реИ - WP рдФрд░ PHP рдЬреИрд╕реЗ рдЕрдиреНрдп рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЖрд╕рд╛рди рдХреНрдпреЛрдВ рд╣реИрдВ!

image

рдЬрдмрдХрд┐ @manigandham рдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ рдПрдХ рдорд╣рд╛рди рдлрд┐рдЯ рд╣реИ, рд╡реЗ GUI рдкреНрд░рд╢рд╛рд╕рди рдЙрдкрдХрд░рдг рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╢реБрд▓реНрдХ рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдХрдИ рджреЗрд╢реЛрдВ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рд╕рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдХрдо TCO рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдЦрд┐рд▓рд╛рдл рднреА рдЬрд╛рддрд╛ рд╣реИред рдХрд┐рддрдиреЗ рд▓реЛрдЧ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рд╡рд╣рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдПрдХ рдмрдбрд╝реА рдмрд╛рдзрд╛ рд░рд╣реА рд╣реИ рдФрд░ рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рд╡реЗрдирд┐рд▓рд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛/рднреВрдорд┐рдХрд╛рдУрдВ/рднреВрдорд┐рдХрд╛рдУрдВ-рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛_рд╕рдореВрд╣/рдХрд┐рд░рд╛рдпреЗрджрд╛рд░реЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреАрдпреВрдЖрдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ , рдЬрд┐рд╕реЗ рддрдм рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рдмрдврд╝рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

@papyr рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╢реБрд░реВ рдХрд░рддреЗ? рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдЬреАрдпреВрдЖрдИ рдХреЛ рдврд╛рдВрдЪреЗ (рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕) рдореЗрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдФрд░ рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЯреАрдо рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдЕрдкрдбреЗрдЯ рд░рдЦрдирд╛ рдХрд┐рддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдЬреИрд╕реЗ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреЗ рд╕рд╛рде, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рд╡реЗ рдЙрд╕ рдкрд░ рдЕрдзрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдмрд░реНрдмрд╛рдж рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рджреВрд╕рд░реА рддрд░рдл, рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдПрдХ рдЙрдкрдпреЛрдЧреА рдЪреАрдЬ рд╣реЛрдЧреА, рддреЛ рдЖрдк рдЗрд╕реЗ рд╕рд┐рд░реНрдл рдПрдХ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкреНрд░рдпрд╛рд╕ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рддреЗ?

@papyr @poke рдХреЛ рдирдП рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЙрддреНрдХреГрд╖реНрдЯ рдореМрдЬреВрджрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИрдВред

рдпрджрд┐ рдЖрдк MS рд╕реЗ рдХреБрдЫ рдУрдкрди рд╕реЛрд░реНрд╕ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдСрд░реНрдЪрд░реНрдб рдХреЛ рджреЗрдЦреЗрдВ:
https://github.com/OrchardCMS/OrchardCore

рдпрджрд┐ рдЖрдк рдПрдХ рдврд╛рдВрдЪреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреНрд▓рд╛рдЙрдбрд╕рд╛рдЗрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдмрд╣реБ-рдХрд┐рд░рд╛рдпреЗрджрд╛рд░реА рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рднреВрдорд┐рдХрд╛ рдФрд░ рджрд╛рд╡рд╛ рдкреНрд░рдмрдВрдзрди ui рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ 4 рдПрдХреАрдХрд░рдг рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реАрдПрдордПрд╕ (рдХреНрд▓рд╛рдЙрдбрд╕рд╛рдЗрдбред рд╕рд░рд▓ / рд╕рд╛рдордЧреНрд░реА) рдХреЗ рд░реВрдк рдореЗрдВ рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд┐рдд рд╣реИред рдЕрддрд┐рд░рд┐рдХреНрдд рдирдЯред
https://www.cloudscribe.com/docs/introduction
https://github.com/cloudscribe/cloudscribe
https://github.com/cloudscribe/cloudscribe.SimpleContent

рдпрджрд┐ рдЖрдк MS рд╕реЗ рдХреБрдЫ рдУрдкрди рд╕реЛрд░реНрд╕ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдкрд░реНрдзрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдСрд░реНрдЪрд░реНрдб рдХреЛ рджреЗрдЦреЗрдВ:
https://github.com/OrchardCMS/OrchardCore

рдореИрдВ рдЗрд╕ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреЛ рджреВрд╕рд░рд╛ рдорд╛рдирддрд╛ рд╣реВрдВред

рдФрд░ рдСрд░реНрдЪрд░реНрдб рдХреЛрд░ рдХреЛ рдмреЗрд╣рдж рдореЙрдбреНрдпреВрд▓рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рдЗрд╕рдХреЗ рдмрд╣реБ-рдХрд┐рд░рд╛рдпреЗрджрд╛рд░реА рдореЙрдбреНрдпреВрд▓ рдХреЛ

рдЖрдк рдЙрдирдХреЗ рдЪреИрдирд▓ рдкрд░ рдЗрд╕рдХреА рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдбреЗрдореЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

@papyr рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╢реБрд░реВ рдХрд░рддреЗ?

https://github.com/IdentityManager/IdentityManager2

рдпрд╣ рдпреВрдЖрдИ рдЪреАрдЬ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмреБрдирд┐рдпрд╛рджреА рдЪреАрдЬреЗрдВ рдЬрд▓реНрджреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрджрдЧрд╛рд░ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЖрдпрд╛ рд╣реВрдВ рдХрд┐ рдпреВрдЖрдИ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдХрд┐ "рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЬрд░реВрд░рддреЛрдВ" рдХреЛ рдХреИрд╕реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЬреИрд╕реЗ рдХрд┐ рдХреБрдЫ рдИрдореЗрд▓ рдХреЛ рдкреВрд░реНрд╡-рдЕрдиреБрдореЛрджрди рдХрд░рдирд╛ (рдЬреЛ рдХреБрдЫ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ), рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЬреЛ рдПрдкреАрдЖрдИ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ , рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХрд╛ рдЕрд░реНрде рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдирд╛ рдпрд╛ рдХрд╣реАрдВ рдФрд░ рдХреЙрд▓ рдХрд░рдирд╛ рдЖрджрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдЯреЛрдХрди рдФрд░ UI рддрд░реНрдХ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ред

рддреЛ рдЗрд╕ рддрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реЛрдиреЗ https://mcguirev10.com/2018/01/28/login-identity-management-best-practices.html рдпрд╛ рдХрдо рд╕реЗ рдЙрди https://mcguirev10.com/page2/ рдпреВрдЖрдИ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд▓рдЧрддрд╛ рд╣реИ ( рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрджрд┐ рдХреЛрдИ рдИрдПрдл рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдпрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛)ред рдлрд┐рд░ рд╢рд╛рдпрдж рдХрд┐рд╕реА рдХреЗ рдЪреБрдиреЗ рд╣реБрдП рддрдХрдиреАрдХ (рдСрд░реЗрд▓рд┐рдпрд╛/рдХреЛрдгреАрдп/рд░реЗрдЬрд░/рд░рд┐рдПрдХреНрдЯ/рд╡реНрдпреВ рдЗрддреНрдпрд╛рджрд┐) рдХреЗ рд▓рд┐рдП рдпреВрдЖрдИ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ рдФрд░ рд╡реЗ рдХреБрдЫ рдбреЗрдЯрд╛ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдФрд░ рдирд╛рдореЛрдВ рдХреЗ рдирд╛рдордХрд░рдг рдкрд░, @ scottbrady91 рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ @LindaLawton , https://github.com/abergs/fido2-net-lib ( @abergs , @aseigler), @TomCJones , @mackie1001 рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдмрд╣реБрдд рд╣реА

.net рдХреЛрд░ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реЗрдЬрд░ рд╡реЗрдм рдкреЗрдЬ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ? рдЬрдм рдореИрдВ рдЬрдЯрд┐рд▓ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдПрдХ рд╣реА рд░реЗрдЬрд░ (рд╕реА #) рдкреЗрдЬ рд╕реЗ рд╕рдм рдХреБрдЫ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИред рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдмрд┐рдирд╛ рдХрд┐рд╕реА рдореЙрдбрд▓ рдпрд╛ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдХрднреА-рдХрднреА рдХреЗрд╡рд▓ рдПрдХ рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рджреГрд╢реНрдп рдореЗрдВ sql рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдФрд░ GET рдФрд░ POST рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдореВрд▓ рдХреНрд╖рдорддрд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдкрдЯреИрдЧ рдирд╛рдордХ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

.net рдХреЛрд░ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд░реЗрдЬрд░ рд╡реЗрдм рдкреЗрдЬ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ?

рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП рд░реЗрдЬрд░ рдкреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-2.1&tabs=visual-studio

рдмреИрдХрд┐рдВрдЧ рдкреЗрдЬ рдореЙрдбрд▓ рдХреНрд▓рд╛рд╕ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИ; рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдХ рдкреГрд╖реНрда рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

benaadams рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рд╕реАрдзреЗ рд░реЗрдЬрд░ рдкреЗрдЬ рдореЗрдВ рдЬреАрдИрдЯреА рдФрд░ рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реВрдВ, рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рд░реНрд╡рд░ рд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдЙрдВрдЧрд╛ред рдирд┐рдпрдорд┐рдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди, рди рдХрд┐ ado рдЗрдХрд╛рдЗрдпрд╛рдБ, рдпрд╛ linq, рдпрд╛ ORMред рдореИрдВ рд╣рдореЗрд╢рд╛ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реВрдВред

рдкрд╕рдВрдж:

var msql = "SELECT * FROM customerss WHERE lastname LIKE <strong i="7">@0</strong> ORDER BY lastname OFFSET " + thisoffset + " ROWS FETCH NEXT 5 ROWS ONLY";

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЕрдм рдПрдХ рдЬреЗрд╕рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдХреБрдЫ рдЪреАрдЬреЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рд╣реИрдВред

рдЦреИрд░, рдЗрд╕рдореЗрдВ рд╕реАрдЦрдиреЗ рдХреА рдЕрд╡рд╕реНрдерд╛ рд╣реИред рдпрджрд┐ рдЖрдк рджреГрд╢реНрдп рд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ _рдкрд╣рд▓реЗ_ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрд░рддреЗ рд╣реИрдВред рддреЛ, HomeController.ViewReports рдХрд╛рд░реНрд░рд╡рд╛рдИ рдФрд░ Views/Home/ViewReports.cshtml рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП рдЖрдк рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

public class HomeController
{
  public ActionResult ViewReports()
  {
    // fetch data from the SQL using...something...
    return View(data);
  }
}

рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛ _after_ рдкреГрд╖реНрда рд▓реЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЖрдо рддреМрд░ рдкрд░ рдХреБрдЫ рд╢реБрджреНрдз GET/POST рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдкрд░ AJAX рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ JSON рд╕реНрд╡рд░реВрдкрд┐рдд рдбреЗрдЯрд╛ рджреЗрддрд╛ рд╣реИред

рдпрд╣ рдЕрдм рднреА рдмрд┐рдирд╛ рдХрд┐рд╕реА рдирд┐рдпрдВрддреНрд░рдХ рдпрд╛ рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрд┐рд╕реА рдкреГрд╖реНрда рдкрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ; рдХреБрдЫ рдЗрд╕ рддрд░рд╣

<strong i="6">@page</strong>
<strong i="7">@using</strong> System.Data.SqlClient
<strong i="8">@using</strong> Microsoft.AspNetCore.Http
<strong i="9">@using</strong> Microsoft.Extensions.Configuration
<strong i="10">@inject</strong> IConfiguration Configuration

@{
    var lastname = Request.Query["lastname"];
    if (!string.IsNullOrEmpty(lastname))
    {
        var offset = 0;
        var count = 5;
        if (Request.Method == HttpMethods.Post)
        {
            int.TryParse(Request.Form["offset"], out offset);
            int.TryParse(Request.Form["count"], out count);
            count = Math.Min(count, 50);
        }

        var connectionString = Configuration.GetConnectionString("MyConnectionString");
        using (var conn = new SqlConnection(connectionString))
        {
            using (var cmd = new SqlCommand(@"
            SELECT * FROM customers
            WHERE lastname LIKE <strong i="11">@lastname</strong>
            ORDER BY lastname
                OFFSET (@offset) ROWS
                FETCH NEXT (@count) ROWS ONLY"))
            {
                cmd.Parameters.AddWithValue("@lastname", lastname);
                cmd.Parameters.AddWithValue("@offset", offset);
                cmd.Parameters.AddWithValue("@count", count);

                await conn.OpenAsync();
                using (var reader = await cmd.ExecuteReaderAsync())
                {
                    while (await reader.ReadAsync())
                    {
                        <div>@reader["lastname"]</div>
                    }
                }
            }
        }
    }
    else
    {
        <div>Nothing chosen</div>
    }
}

рдореИрдВрдиреЗ рдПрдорд╡реАрд╕реА рдПрдПрд╕рдкреАрдиреЗрдЯ рдФрд░ рд╡реЗрдмрдлреЙрд░реНрдо рдФрд░ рдкреБрд░рд╛рдиреЗ рд░реЗрдЬрд░ рдкреЗрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдирдпрд╛ рдирд╣реАрдВ рд╣реВрдВред рдореИрдВрдиреЗ 3 рдШрдВрдЯреЗ рдмрд┐рддрд╛рдП рд╣реИрдВ рдФрд░ рдЕрднреА рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рд░реЗрдЬрд░ рдкреЗрдЬ рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<body>
    <form id="petform" method="post" action="pets/razdb3">
        <input type="text" name="psearch" id="psearch" />
        <input type="submit" />
    </form>

</body>
</html>

рдмрд╕ рдПрдХ html рдкреГрд╖реНрда рдФрд░ рд▓реЛрдбред

рдЖрджрд░реНрд╢

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace petnewtry.Pages.pets
{
    public class razdb3Model : PageModel
    {
        public string myvar { get; set; }

        public void OnGet()
        {

        }

        public void OnPost()
        {
            myvar = Request.Form["psearch"];
        }
    }
}

рд░рд╛рдп:

<strong i="13">@page</strong>
<strong i="14">@model</strong> petnewtry.Pages.pets.razdb3Model
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>razdb3</title>
</head>
<body>
    <div>@Model.myvar</div>
    <div>hello</div>
</body>
</html>

3 рдШрдВрдЯреЗ рдФрд░ рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рдЦрд╛рд▓реА рдкреГрд╖реНрда рдорд┐рд▓рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдПрдХ рд╡рд╛рдкрд╕реА рд╡рд┐рд╡рд░рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЖрджрд┐

рдЕрдЧрд░ рдореИрдВ рд╕рд┐рд░реНрдл http://localhost :51307/pets/razdb3 рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рджреВрд╕рд░рд╛ рдбрд┐рд╡реАрдЬрди "рд╣реИрд▓реЛ" рдорд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди
@ Model.myvar рдореБрдЭреЗ рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ред

рдореИрдВ .net рдХреЛрд░ рдХреЗ рд▓рд┐рдП рдирдпрд╛ рд╣реВрдВ, рдФрд░ рдореИрдВрдиреЗ рдХрднреА рдирд╣реАрдВ рд╕реЛрдЪрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд░реЗрдЬрд░ рдкреЗрдЬ рдХреЛ рд╕рд░рд▓ рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рдХрдард┐рди рд╣реЛрдЧрд╛ рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╡реАрдПрд╕ рд╕рдореБрджрд╛рдп 2017 . рдореЗрдВ

@ Model.myvar рдореБрдЭреЗ рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рддрд╛ред

рдЖрдк myvar рдорд╛рди рдХреЛ рдПрдХ рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз ( OnPost ) рдкрд░ рдлрд╝реЙрд░реНрдо рдорд╛рди psearch ; рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕ рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ POST рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рд╣реЛрдЧрд╛?

рдЬреАрдИрдЯреА рдЕрдиреБрд░реЛрдз ( OnGet ) рдореЗрдВ рдЬреЛ рдЖрдкрдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдпреВрдЖрд░рдПрд▓ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИ; рдПрдХ рдлреЙрд░реНрдо рдкреЛрд╕реНрдЯрдмреИрдХ рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рднреА рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред

рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдпрд╣ рддрдм рджрд┐рдЦрд╛рдИ рджреЗ рдЬрдм рдЖрдк рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рди рдХрд░реЗрдВ рдХрд┐ рдореЙрдбрд▓ рдкреНрд░рд╡рд╛рд╣рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ:

public string myvar { get; set; } = "Not Set";

рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛

public string myvar { get; set; } = "Not Set";

рдФрд░ рдЕрднреА рднреА рдПрдХ рдЦрд╛рд▓реА рдкреГрд╖реНрдаред рдХреНрдпрд╛ @Model.myvar рд╕рд╣реА рд╣реИ?

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдмрджрд▓ рдЧрдпрд╛

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace petnewtry.Pages.pets
{
    public class razdb3Model : PageModel
    {
        [BindProperty]
        public string psearch { get; set; }

        public void OnGet()
        {

        }

        public void OnPost(string psearch)
        {
            psearch = Request.Form["psearch"];
        }
    }
}
<strong i="12">@page</strong>
<strong i="13">@model</strong> petnewtry.Pages.pets.razdb3Model
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>razdb3</title>
</head>
<body>
    <div>@Model.psearch</div >
        <div>hello</div>
</body>
</html>

рдпрд╣ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЦрд╛рд▓реА рдкреГрд╖реНрда рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВред

рд╡рд┐рдирдореНрд░ рдЯрд┐рдкреНрдкрдгреА/рд╡рд┐рдЪрд╛рд░: рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ "рд╕рд╛рдорд╛рдиреНрдп рд░реЗрдЬрд░ рдкреЗрдЬ" рдкрд░ рдпрд╣ рдЪрд░реНрдЪрд╛ рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рд╡рд┐рд╖рдп рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдереЛрдбрд╝рд╛ рд╣рдЯрдХрд░ рд╣реЛрдиреЗ рд▓рдЧреА рд╣реИред

рдореИрдВ

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореБрдЭреЗ рдордВрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ред рдзрдиреНрдпрд╡рд╛рдж @benaadams рдЖрдкрдХреЗ рдХреЛрдб рдиреЗ рдореБрдЭреЗ рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░

https://www.c-sharpcorner.com/article/razor-page-web-application-with-asp-net-core-using-ado-net/

рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореИрдВрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ "рдирдпрд╛" рдХреБрдВрдЬреА рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдорд╛рди рдХрд┐рдпрд╛, рдЬреИрд╕реЗ

EmployeeDataAccessLayer objemployee = new EmployeeDataAccessLayer();

рдпрд╣ рджреЗрдЦрдХрд░ рдЖрд╢реНрд╡рд╕реНрдд рд╣реБрдЖ рдХрд┐ рдЖрдк рдЕрднреА рднреА .net рдХреЛрд░ рдореЗрдВ рдХрд╕реНрдЯрдо рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдкрдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, .net рдХреЛрд░ рдореЗрдВ рдХреБрдЫ рдкреВрд░реНрд╡ рдПрдПрд╕рдкреАрдиреЗрдЯ рдврд╛рдВрдЪреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рддреЗрдЬ рд╕реАрдЦрдиреЗ рдХреА рдЕрд╡рд╕реНрдерд╛ рд╣реИред рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

рд░рд┐рд▓реАрдЬ рдиреЛрдЯреНрд╕ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдРрдб-рдСрди рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд "рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░" рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрд▓рдмреНрдз рд╣реИ? рдореИрдВ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред рдпрд╛ рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рд╕реНрд╡рдпрдВ рдмрдирд╛рдПрдВред

рд░рд┐рд▓реАрдЬ рдиреЛрдЯреНрд╕ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдорд╣реАрдиреЛрдВ рдореЗрдВ рдРрдб-рдСрди рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд "рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░" рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрд▓рдмреНрдз рд╣реИ? рдореИрдВ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдирд╣реАрдВред рдпрд╛ рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рд╕реНрд╡рдпрдВ рдмрдирд╛рдПрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдпреЛрдЬрдирд╛ "рдкреНрд░реА-рдкреИрдХреЗрдЬреНрдб" рддрд░реАрдХреЗ рд╕реЗ https://github.com/IdentityServer/IdentityServer4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╣реИред

IS4 рдЯреАрдо рдФрд░ MS рд╕реБрд░рдХреНрд╖рд╛ рдЯреАрдо рдХреЗ рдиреЛрдЯреЛрдВ рдХреЗ рдмрд╛рдж, рдРрд╕рд╛ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдХрд┐ MS рдмрд╕ IS4 рдХреА рдПрдХ рддреНрд╡рд░рд┐рдд рдФрд░ рдЧрдВрджреА рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ рджрд┐рди рдХрд╣ рд░рд╣рд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдиреЗ рдЕрдзрд┐рдХ рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде, рд╡рд╛рдкрд╕ рдкрдХрдбрд╝рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕реБрд░рдХреНрд╖рд╛ рд╕рд╣реА рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рд▓рд╣рд░ рдкреНрд░рднрд╛рд╡ рдкреИрджрд╛ рдХрд░ рд╕рдХрддреА рд╣реИред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдИрдПрд╕ 4 рдФрд░ рдПрдПрд╕рдкреА рдХреЗ рдмреАрдЪ рдкреВрд░реНрдг рдПрдХреАрдХрд░рдг рд╡реЗрдм рдПрдкреАрдЖрдИ рдФрд░ рдПрдорд╡реАрд╕реА рджреЛрдиреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрди рджрд┐рдиреЛрдВ рдФрд░ рдФрджреНрдпреЛрдЧрд┐рдХ рд╢рдХреНрддрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг/рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдиреНрдпреВрдирддрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдУрдкрди рд╕реЛрд░реНрд╕ (рдУрдПрд╕рдПрд╕) рдЬреНрдпрд╛рджрд╛рддрд░ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИ рд▓реЗрдХрд┐рди рдХреБрдЫ рдУрдПрд╕рдПрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдЧрдВрднреАрд░ рдЧрд▓рддрдлрд╣рдорд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рдЙрджреНрдпрдо рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИрдВред 85% рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдкреБрд░рд╛рдиреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ рдЬреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдЦрд┐рдо рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 45% рд╡реЗрдм рд╕рд░реНрд╡рд░ Apache (https://www.cvedetails.com/vendor/45/Apache.html) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ IIS (https://www.cvedetails.com/product/3436/) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╣реИрдВред Microsoft-IIS.html?vendor_id=26)ред рдЖрдЗрдбреЗрдВрдЯрд┐рдЯреА рд╕рд░реНрд╡рд░ рдЬреИрд╕реЗ рдЙрддреНрдкрд╛рдж рдареАрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдбреЗрд╡рд▓рдкрд░ рдЯреНрд╡реАрдХ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдиреЗрдЯ рдХреЛрд░ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрд╢рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛ...

рдЗрди рджрд┐рдиреЛрдВ рдФрд░ рдФрджреНрдпреЛрдЧрд┐рдХ рд╢рдХреНрддрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг/рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдиреНрдпреВрдирддрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдУрдкрди рд╕реЛрд░реНрд╕ (рдУрдПрд╕рдПрд╕) рдЬреНрдпрд╛рджрд╛рддрд░ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИ рд▓реЗрдХрд┐рди рдХреБрдЫ рдУрдПрд╕рдПрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдЧрдВрднреАрд░ рдЧрд▓рддрдлрд╣рдорд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рдЙрджреНрдпрдо рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИрдВред 85% рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдкреБрд░рд╛рдиреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ рдЬреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдЦрд┐рдо рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 45% рд╡реЗрдм рд╕рд░реНрд╡рд░ Apache (https://www.cvedetails.com/vendor/45/Apache.html) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ IIS (https://www.cvedetails.com/product/3436/) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╣реИрдВред Microsoft-IIS.html?vendor_id=26)ред рдЖрдЗрдбреЗрдВрдЯрд┐рдЯреА рд╕рд░реНрд╡рд░ рдЬреИрд╕реЗ рдЙрддреНрдкрд╛рдж рдареАрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдбреЗрд╡рд▓рдкрд░ рдЯреНрд╡реАрдХ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдиреЗрдЯ рдХреЛрд░ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрд╢рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛ...

рдЖрдкрдХреА рдмрд╛рдд рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ, рдПрдордПрд╕ рд╕реНрдЯрд╛рдл рдиреЗ рдХрд╣рд╛ рдерд╛, рдХрд┐ рд╡реЗ [рд╕реБрд░рдХреНрд╖рд╛] рдкрд╣рд┐рдпреЛрдВ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рддреАрд╕рд░реЗ рдкрдХреНрд╖ [рдЖрдИрдПрд╕рек] рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╣рдо рд╕рднреА рдХреЗ рд▓рд┐рдП рдЬреАрдд/рдЬреАрдд рдХреА рд╕реНрдерд┐рддрд┐ рд╣реЛрдЧреАред

рдЗрди рджрд┐рдиреЛрдВ рдФрд░ рдФрджреНрдпреЛрдЧрд┐рдХ рд╢рдХреНрддрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг/рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдиреНрдпреВрдирддрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдУрдкрди рд╕реЛрд░реНрд╕ (рдУрдПрд╕рдПрд╕) рдЬреНрдпрд╛рджрд╛рддрд░ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИ рд▓реЗрдХрд┐рди рдХреБрдЫ рдУрдПрд╕рдПрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдЙрддреНрдкрд╛рджреЛрдВ рдореЗрдВ рдЧрдВрднреАрд░ рдЧрд▓рддрдлрд╣рдорд┐рдпрд╛рдВ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рднреА рдЙрджреНрдпрдо рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реИрдВред 85% рдкрд░рд┐рдпреЛрдЬрдирд╛рдПрдВ рдкреБрд░рд╛рдиреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВ рдЬреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдЦрд┐рдо рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 45% рд╡реЗрдм рд╕рд░реНрд╡рд░ Apache (https://www.cvedetails.com/vendor/45/Apache.html) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ IIS (https://www.cvedetails.com/product/3436/) рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдХрдордЬреЛрд░рд┐рдпрд╛рдВ рд╣реИрдВред Microsoft-IIS.html?vendor_id=26)ред рдЖрдЗрдбреЗрдВрдЯрд┐рдЯреА рд╕рд░реНрд╡рд░ рдЬреИрд╕реЗ рдЙрддреНрдкрд╛рдж рдареАрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдбреЗрд╡рд▓рдкрд░ рдЯреНрд╡реАрдХ рдЙрдиреНрд╣реЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдореЗрдВ рдиреЗрдЯ рдХреЛрд░ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рд╣рдореЗрд╢рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛ...

рдХреБрдЫ рднреА "рд╣рдореЗрд╢рд╛ рд╕реБрд░рдХреНрд╖рд┐рдд" рдирд╣реАрдВ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рд╕реЗ рдХреБрдЫ рдирд╣реАрдВ;)
рдЗрд╕реЗ рдмрдирд╛рдирд╛ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд░рдЦрдирд╛ рд╣рдореЗрд╢рд╛ рдЗрди рдЪреАрдЬреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╣рд╛рде рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред

IdentityServer рдХреЛ 2.2 рдХреЗ рдмрд╛рдж рдирдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╢рд┐рдкрд┐рдВрдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдлреЛрдХрд╕ рдПрдкреАрдЖрдИ рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рд╣реЛрдЧрд╛ - рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред

ASP.NET Core рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдХреЙрдиреНрдлрд┐рдЧ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╢рд┐рдк рдХрд░реЗрдЧрд╛ рдЬреЛ рдХреЗрд╡рд▓ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЖрд░рдВрдн рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдЖрдк рдХрд┐рд╕реА рднреА рдмрд┐рдВрджреБ рдкрд░ IS рдиреЗрдЯрд┐рд╡ рдХреЙрдиреНрдлрд┐рдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп рджреЗрддрд╛ рд╣реИред

IdentityServer рдХреЛ 2.2 рдХреЗ рдмрд╛рдж рдирдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╢рд┐рдкрд┐рдВрдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдлреЛрдХрд╕ рдПрдкреАрдЖрдИ рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рд╣реЛрдЧрд╛ - рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред

ASP.NET Core рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдХреЙрдиреНрдлрд┐рдЧ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╢рд┐рдк рдХрд░реЗрдЧрд╛ рдЬреЛ рдХреЗрд╡рд▓ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЖрд░рдВрдн рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдЖрдк рдХрд┐рд╕реА рднреА рдмрд┐рдВрджреБ рдкрд░ IS рдиреЗрдЯрд┐рд╡ рдХреЙрдиреНрдлрд┐рдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп рджреЗрддрд╛ рд╣реИред

рдбреЛрдорд┐рдирд┐рдХ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж;
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ "рд╕реНрдЯреЗрдкрд┐рдВрдЧ рд╕реНрдЯреЛрди" рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдкреВрд░реНрдг рдЖрдИрдПрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред рдЕрдЪреНрдЫрд╛ рдХрджрдоред

IdentityServer рдХреЛ 2.2 рдХреЗ рдмрд╛рдж рдирдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╢рд┐рдкрд┐рдВрдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдлреЛрдХрд╕ рдПрдкреАрдЖрдИ рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рд╣реЛрдЧрд╛ - рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред

ASP.NET Core рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдХреЙрдиреНрдлрд┐рдЧ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╢рд┐рдк рдХрд░реЗрдЧрд╛ рдЬреЛ рдХреЗрд╡рд▓ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЖрд░рдВрдн рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдЖрдк рдХрд┐рд╕реА рднреА рдмрд┐рдВрджреБ рдкрд░ IS рдиреЗрдЯрд┐рд╡ рдХреЙрдиреНрдлрд┐рдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп рджреЗрддрд╛ рд╣реИред

рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛! рдзрдиреНрдпрд╡рд╛рджред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдкреАрдЖрдИ рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдУрдПрде рд╕реНрдХреЛрдк рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдЧрд╛?
рдЕрдзрд┐рдХ рдЕрд╕реНрдерд┐рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ policyserver.io рдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ?

IdentityServer рдХреЛ 2.2 рдХреЗ рдмрд╛рдж рдирдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╢рд┐рдкрд┐рдВрдЧ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдлреЛрдХрд╕ рдПрдкреАрдЖрдИ рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рд╣реЛрдЧрд╛ - рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рд╣реИред
ASP.NET Core рдПрдХ рд╕рд░рд▓реАрдХреГрдд рдХреЙрдиреНрдлрд┐рдЧ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рд╢рд┐рдк рдХрд░реЗрдЧрд╛ рдЬреЛ рдХреЗрд╡рд▓ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдЖрд░рдВрдн рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдЖрдк рдХрд┐рд╕реА рднреА рдмрд┐рдВрджреБ рдкрд░ IS рдиреЗрдЯрд┐рд╡ рдХреЙрдиреНрдлрд┐рдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЙрдиреНрдирдд рдкрд░рд┐рджреГрд╢реНрдп рджреЗрддрд╛ рд╣реИред

рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛! рдзрдиреНрдпрд╡рд╛рджред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдкреАрдЖрдИ рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдУрдПрде рд╕реНрдХреЛрдк рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдЧрд╛?
рдЕрдзрд┐рдХ рдЕрд╕реНрдерд┐рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ policyserver.io рдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ?

рдкреЙрд▓рд┐рд╕реА рд╕рд░реНрд╡рд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдкреАрдЖрдИ рдПрдХреНрд╕реЗрд╕ рдХрдВрдЯреНрд░реЛрд▓ рдУрдПрде рд╕реНрдХреЛрдк рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдЧрд╛?
рдЕрдзрд┐рдХ рдЕрд╕реНрдерд┐рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ policyserver.io рдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ?

"рдХреЗрд╡рд▓" рдкрд╣рдЪрд╛рди рд╕рд░реНрд╡рд░ред ASP.NET Core рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд API рд╣реИ - рдФрд░ рдпрджрд┐ рдкреЙрд▓рд┐рд╕реАрд╕рд░реНрд╡рд░ (рдЙрддреНрдкрд╛рдж) рдЖрдкрдХреЛ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдХреНрдпреЛрдВрдХрд┐ ASP.NET Core 2.2 рдХреЛ рднреЗрдЬ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдХреНрдпрд╛ рдЗрд╕реЗ ASP 3.0 рдореЗрдВ рдЕрджреНрдпрддрди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рд░реНрд╡рд░ рдПрдиреНрд╣рд╛рдВрд╕рдореЗрдВрдЯ рдХрдм рд╢рд┐рдк рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

bgribaudo picture bgribaudo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rbanks54 picture rbanks54  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

BrennanConroy picture BrennanConroy  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

farhadibehnam picture farhadibehnam  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

githubgitgit picture githubgitgit  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ