1C рдореЗрдВ рд╕реАрдзреЗ рдкреНрд░рд╡реЗрд╢: Lin. рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ Asp.Net рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ

1C рдореЗрдВ рд╕реАрдзреЗ рдкреНрд░рд╡реЗрд╢: Lin. рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ Asp.Net рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ


рдЖрд▓реЗрдЦ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ MSSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕реНрдерд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ 1C: Enterprise 8 рдореЗрдВ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреИрд╕реЗ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рджреМрд░рд╛рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╛рдЗрдЯ рдкрд░ рд▓реЙрдЧ рдЗрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ 1 рд╕реА рд╡рд┐рдиреНрдпрд╛рд╕рдХрд░реНрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреЗрд╡рд▓ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкрдВрдЬреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдкрд╛рд╕рд╡рд░реНрдб рд░рд┐рдХрд╡рд░реА рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╕рдВрдЪрд╛рд▓рди, рдИ-рдореЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдХрд╛рд░реНрдп рд▓рд╛рдЗрдирдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ MSSQL рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЖрдкрдХреЛ Asp.Net рдФрд░ 1C рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡рд┐рднрд┐рдиреНрди CMS рдХреЗ рд░реВрдк рдореЗрдВ рдмрд┐рдЪреМрд▓рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдлреИрд▓рд╛рд╡ рднреА рдХрд░рддрд╛ рд╣реИред



1C рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдирд╛: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ


рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ 1C рд╕реВрдЪрдирд╛ рдЖрдзрд╛рд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рджрд╛рддрд╛ рдпрд╛ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рд╣реЛрд╕реНрдЯрд┐рдВрдЧ рдкреНрд░рджрд╛рддрд╛ рд╕реЗ MSSQL рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд┐рдд рд╣реИред

9 рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдФрд░ 25 рд╡рд░реНрдгреЛрдВ рдХреЗ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдирдХрд░реНрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

1C рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдмрдирд╛рдирд╛: рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ

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


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

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

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

рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрдкрд╛рджрди рдлреЙрд░реНрдо рднреА:

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдкрддреНрд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

MSSQL рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рд╕реАрдзреА рдкрд╣реБрдБрдЪ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛



рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ LINQ рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ CS рдлрд╛рдЗрд▓ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреА рд╣реЛрдЧреАред рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ LinqTo1C рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ рдЖрдкрдХреЛ рдХреМрди рд╕реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдУрдВ рдХреЛ рдЕрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕рд╛рде рд╣реА MSSQL рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рд╕реНрдЯреНрд░рд┐рдВрдЧ рднреАред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЗрд╡рд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЕрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

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

LinqTo1C рдЙрдкрдпреЛрдЧрд┐рддрд╛

рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, 2 рдлрд╛рдЗрд▓реЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреА: dbml - рджреГрд╢реНрдп рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд▓рд┐рдП рдФрд░ C # рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕ред рдпрд╣ рджреГрд╢реНрдп рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

Visual Studio рдореЗрдВ LinqTo1C рдХреЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ

рдкрдВрдЬреАрдХрд░рдг рдФрд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП Asp.Net рдХреЛрдб


рдХреЛрдб Asp.Net MVC рдХреЗ рд▓рд┐рдП рд╣реИ, рдЬрд╣рд╛рдВ рдЦрд╛рддрд╛-рдирд┐рдпрдВрддреНрд░рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

AccountController:
public ActionResult LogOn() { ViewBag.Title = Resources.Account.LogonTitle; return View("~/Views/Dotnet/Logon.cshtml"); } [HttpPost] public ActionResult LogOn(LogOnModel model, string returnUrl) { if (ModelState.IsValid) { if (MembershipService.ValidateUser(model.UserName, model.Password)) { FormsService.SignIn(model.UserName, model.RememberMe); if (Url.IsLocalUrl(returnUrl)) { return Redirect(returnUrl); } else { return RedirectToAction("Index", "Dotnet"); } } else { ModelState.AddModelError("", ""); } } // If we got this far, something failed, redisplay form return View("~/Views/Dotnet/Logon.cshtml", model); } public ActionResult LogOff() { FormsService.SignOut(); return RedirectToAction("Index", "Dotnet"); } public ActionResult Register() { ViewBag.Title = Resources.Account.RegisterTitle; ViewBag.PasswordLength = MembershipService.MinPasswordLength; return View("~/Views/Dotnet/Register.cshtml"); } [HttpPost] public ActionResult Register(RegisterModel model) { if (ModelState.IsValid) { // Attempt to register the user MembershipCreateStatus createStatus = MembershipService.CreateUser(model.UserName, model.Email, model.Password, model.ConfirmPassword); if (createStatus == MembershipCreateStatus.Success) { FormsService.SignIn(model.UserName, false /* createPersistentCookie */); return RedirectToAction("Index", "Dotnet"); } else { ModelState.AddModelError("", AccountValidation.ErrorCodeToString(createStatus)); } } // If we got this far, something failed, redisplay form ViewBag.PasswordLength = MembershipService.MinPasswordLength; return View("~/Views/Dotnet/Register.cshtml", model); } 


рдлрд╝реЙрд░реНрдо рдХреЗ рдХреЙрд▓ FormsService.SignOut рдФрд░ FormsService.SignIn рдЗрддрдиреЗ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ FormsService.SignIn , рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ: FormsAuthentication.SignOut рдФрд░ FormsAuthentication.SetAuthCookie ред

AccountMembershipService рд╡рд░реНрдЧ MSSQL рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, CreateUser рд╡рд┐рдзрд┐ рдХрд╛ CreateUser ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рдВрднрд╛рд╡рд┐рдд рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ: рдЦрд╛рд▓реА рд▓реЙрдЧрд┐рди, рдкрд╛рд╕рд╡рд░реНрдб, рдИ-рдореЗрд▓, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд▓реЙрдЧрд┐рди / рдИ-рдореЗрд▓, рдкрд╛рд╕рд╡рд░реНрдб рдорд┐рд▓рд╛рди рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдкреБрд╖реНрдЯрд┐ред рдЗрд╕рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝реАрд▓реНрдб рднрд░ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд▓рд┐рдВрдХ рдХреЛ рдПрдХ рдирдпрд╛ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИ, рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ + 1 рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рдПрдХ рдмрдВрдж рдЪреЗрдХрд╕рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЪреЗрдХрд╕рдо рдХреА рдЧрдгрдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЙрдкрд╕рд░реНрдЧ рд╕реЗ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ рдпрд╣рд╛рдВ рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
 public MembershipCreateStatus CreateUser(string userName, string email, string password, string confirmPassword) { if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName"); if (String.IsNullOrEmpty(password)) throw new ArgumentException("Value cannot be null or empty.", "password"); if (String.IsNullOrEmpty(email)) throw new ArgumentException("Value cannot be null or empty.", "email"); MembershipCreateStatus status = MembershipCreateStatus.ProviderError; using (var dataContext = new ElisyCMS(ConfigurationManager.ConnectionStrings["ElisyCMS"].ConnectionString)) { if (dataContext..Where(m => m. == userName && m. == new Binary(new byte[]{0})).Count() != 0) return MembershipCreateStatus.DuplicateUserName; if (dataContext..Where(m => m.Email == email && m. == new Binary(new byte[] { 0 })).Count() != 0) return MembershipCreateStatus.DuplicateEmail; if (password != confirmPassword) return MembershipCreateStatus.InvalidPassword; try {  user = new (); user. = Guid.NewGuid().ToByteArray(); user. = new byte[] { 0 }; user. = new byte[] { 0 }; var codeRequest = from a in dataContext. where Convert.ToInt32(a.) > 0 orderby Convert.ToInt32(a.) descending select Convert.ToInt32(a.); var lastCode = codeRequest.Take(1).FirstOrDefault(); user. = (lastCode + 1).ToString().PadLeft(9, '0'); user. = userName; byte[] saltBytes = new byte[8]; new RNGCryptoServiceProvider().GetBytes(saltBytes); user. = Convert.ToBase64String(saltBytes); byte[] passwordBytes = System.Text.Encoding.UTF8.GetBytes(user. + password); byte[] hash = new SHA1CryptoServiceProvider().ComputeHash(passwordBytes); user. = Convert.ToBase64String(hash); user. = DateTime.Now; user. = DateTime.Now; user. = new Binary(new byte[] { 1 }); user. = System.Threading.Thread.CurrentThread.CurrentUICulture.Name; //user. = Guid.NewGuid().ToString(); user.Email = email; dataContext..InsertOnSubmit(user); dataContext.SubmitChanges(); return MembershipCreateStatus.Success; } catch (Exception ex) { return MembershipCreateStatus.ProviderError; } } return status; } 

рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП ValidateUser рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐, рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдЭрдВрдбреЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░реЗрд╖рд┐рдд рдкрд╛рд╕рд╡рд░реНрдб рдХреА рдЧрдгрдирд╛ рдЪреЗрдХрд╕рдо рдФрд░ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рдЪреЗрдХрд╕рдо рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред
  public bool ValidateUser(string userName, string password) { if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName"); if (String.IsNullOrEmpty(password)) throw new ArgumentException("Value cannot be null or empty.", "password"); using (var dataContext = new ElisyCMS(ConfigurationManager.ConnectionStrings["ElisyCMS"].ConnectionString)) { var  = dataContext..Where(m => m..ToUpper() == userName.ToUpper()).FirstOrDefault(); if ( == null) return false; if (..ToArray()[0] == 0) return false; if (String.IsNullOrWhiteSpace(.)) return true; byte[] passwordBytes = System.Text.Encoding.UTF8.GetBytes(. + password); byte[] hash = new SHA1CryptoServiceProvider().ComputeHash(passwordBytes); return Convert.ToBase64String(hash).Equals(.); } } 

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


All Articles