ASP.NET 4.5 Как создать пользовательские входы в систему?

#c# #asp.net #login #identity

#c# #asp.net #войти #идентификация

Вопрос:

Я относительно новичок в ASP.NET поэтому я надеюсь, что кто-нибудь поможет мне направить меня в правильном направлении.

Я создаю свадебный веб-сайт, который будет отображать контент только в том случае, если пользователь войдет в систему с помощью элемента управления входом в верхней части страницы.

У меня есть база данных, созданная в SQL Server с таблицей Users, которая имеет 6-значный int с именем U_ID и 5-значную строку с именем U_Code, и каждый гость на свадьбе получит этот идентификатор и код для входа в систему и просмотра содержимого веб-сайта.

Я обновил свою строку подключения в Web.Config для ссылки на эту базу данных.

 <add name="WeddingConnectionString1" connectionString="Data Source=MYPC;Initial Catalog=Wedding;Integrated Security=True" providerName="System.Data.SqlClient" />
 

Но теперь я не знаю, как использовать элемент управления входом, который использует эту базу данных для разрешения входа в систему.

Вот код для моего входа в систему:

  <asp:Login ID="Login1" runat="server" Orientation="Horizontal" 
  LoginButtonText="Login"    
  UserNameLabelText="ID:" RememberMeText="" TitleText="" PasswordLabelText="Code:" 
  DisplayRememberMe="False" OnAuthenticate="Login1_Authenticate">
 </asp:Login>

 <asp:ValidationSummary ID="ValidationSummary1"  
    runat="server" ForeColor="#FF0066" Height="32px" ValidationGroup="Login1"    
    Width="203px"
  />
 </login>
 

Так что мне нужно выяснить, что здесь происходит:

 protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
    {

    }
 

Пожалуйста, помогите мне, если можете, или укажите мне место, которое поможет мне это сделать.
Спасибо!

Комментарии:

1. я бы не рекомендовал встроенный asp.net элементы управления входом, просто используйте SQL-запрос, чтобы получить пароль пользователя для входа в систему и сравнить его с тем, что ввел пользователь, если это то же самое, тогда выполните свой логин. проверьте Linq, это значительно упростит кодирование sql

2. Внедрение механизма безопасной аутентификации / авторизации не является тривиальной задачей. Почему вы не используете встроенные элементы членства? Зачем заново изобретать колесо?

3. Я надеялся использовать свою пользовательскую базу данных для аутентификации при входе, поскольку она уже создана, а также содержит множество других данных для пользователей. Но, подумав об этих двух комментариях, я думаю, что было бы лучше использовать встроенное членство для аутентификации и просто изменить некоторые настройки по умолчанию в Identity и использовать Linq для других разделов, где я бы позволил пользователям манипулировать массивной базой данных, которая уже существует. Спасибо.

4. @HaukurHaf абсолютно прав: используйте встроенный механизм роли / членства и аутентификации. Rgds,

5. То есть пользователи не получают свой собственный индивидуальный логин? Итак, чем U_ID отличается от идентификатора пользователя, а U_Code отличается от пароля?

Ответ №1:

Если вы не хотите использовать готовую систему аутентификации, вы можете создать свою собственную.

Просто добавьте в форму два текстовых поля (одно с textmode в качестве пароля) и кнопку в качестве входа.

Теперь в событии нажатия кнопки напрямую используйте sqlcommand или ваш LINQ для аутентификации пользователя на основе сведений из текстовых полей.

Надеюсь, что схема вам поможет. Скажите мне, если вам нужна дополнительная информация..

Комментарии:

1. Спасибо — если бы я все еще планировал использовать мою ранее созданную базу данных sql для аутентификации, это было бы простым решением.