Почему необходимо указать поставщика услуг - PullRequest
1 голос
/ 28 февраля 2011

Я пытаюсь создать свою собственную функцию входа в систему без использования Membership Provider, но после того, как я вхожу в систему с помощью элемента управления System.Web.UI.WebControls.Login и устанавливаю cookie аутентификации, используя FormsAuthentication.SetAuthCookie(username, rememberMe);

Я получил следующее сообщение об ошибке

Необходимо указать поставщика по умолчанию.

Интересно, почему это должно быть указано?

Ответы [ 4 ]

2 голосов
/ 28 февраля 2011

System.Web.UI.WebControls.Login тесно связан с поставщиками членства. Если вы хотите войти в систему без поставщика членства, вам просто нужно создать собственную форму входа с текстовыми полями и кнопками.

1 голос
/ 11 августа 2014

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

Уловка в том, что вам нужно обработать событие OnAuthenticate элемента управления asp:Login. В простейшем виде это будет в aspx:

<asp:Login ID="Login1" runat="server" OnAuthenticate="Login1_Authenticate">
</asp:Login>

И это в коде позади:

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) {
    e.Authenticated = FormsAuthentication.Authenticate(Login1.UserName, Login1.Password);
}

И это в web.config:

<membership>
  <providers>
    <clear/>
  </providers>
</membership>
<authorization>
  <allow users="?"/>
</authorization>
<authentication mode="Forms">
  <forms cookieless="UseCookies" loginUrl="~/Login.aspx" path="/" protection="None" name="user_login_cookie">
    <credentials passwordFormat="Clear">
      <user name="user" password="password_in_clear!"/>
    </credentials>
  </forms>
</authentication>

Это даст вам простую форму входа в систему с жестко запрограммированным пользователем в web.config. Подходит для прототипов и демонстраций, пожалуйста, не размещайте учетные записи в web.configs для живых сайтов!

1 голос
/ 28 февраля 2011

Я мог бы использовать его, не делая свою собственную форму входа. Я только что удалил раздел поставщика членства из webconfig.

1 голос
/ 28 февраля 2011

Вы должны добавить в свой web.config раздел, в котором будет указано, где искать свой список участников. это будет база данных, содержащая пользователей, активную группу каталогов и т. д. В противном случае, как ваше приложение узнает, где аутентифицировать пользователей?

Проверьте MSDN Введение в членство для получения дополнительной информации.

...