Mam nadzieję, że mogę dodać trochę dodatkowych wyjaśnień w stosunku do innych odpowiedzi, ponieważ one naprawdę nie wyjaśniają, co się dzieje, co nie pomoże wam w pomieszaniu.
Najpierw, wdrożyć dostawcy niestandardowej, która od głosu rzeczy zrobiłeś już, więc ja po prostu rzucać trochę fragment kodu i nie przejdzie do dalszych szczegółów tutaj:
using System.Web.Security;
public class MyCustomMembershipProvider : MembershipProvider
{
public override bool ValidateUser(string username, string password)
{
if (username.Equals("BenAlabaster") && password.Equals("Elephant"))
return true;
return false;
}
/* Override all the other methods required to extend MembershipProvider */
}
Następnie należy skonfigurować dostawcę w web.config upewniając się, aby zapełnić atrybuty skonfigurować MembershipProvider Base:
<membership defaultProvider="MyCustomMembershipProvider">
<providers>
<clear />
<add name="MyCustomMembershipProvider"
type="MyNamespace.MyCustomMembershipProvider"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
passwordFormat="Hashed"
maxInvalidPasswordAttempts="10"
minRequiredPasswordLength="6"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
passwordStrengthRegularExpression=""
applicationName="/" />
</providers>
</membership>
następny nieco myślę jesteś overthinking rzeczywista tie-in do aplikacji internetowej . Natomiast w aplikacji WebForms trzeba samemu zakodować resztę - struktura MVC robi resztę - wszystko, co musisz zrobić, to dodać atrybut [Authorize] do swojej metody działania, a framework sprawdzi, czy jesteś ponownie zalogowany, a jeśli nie przekieruje Cię do strony logowania. Strona logowania znajdzie się z dostawcą niestandardową bo to co skonfigurowane w pliku web.config i zanotuje użytkownikowi można uzyskać informacje na temat zalogowanego użytkownika z kontrolerów poprzez odwołanie do użytkownika obiektu.
public class WhateverController : Controller
{
[Authorize]
public ActionResult WhateverAction()
{
ViewData["LoggedInAs"] = string.Format("You are logged in as {0}.", User.Identity.Name);
Return View();
}
}
Ta czynność wymaga zalogowania użytkownika i przedstawienia informacji o użytkowniku w widoku Whatever/WhateverAction.aspx wyświetlanym na stronie.
Okay, to ma sens - dzięki za wyczyszczenie tego. Po prostu nie robiłem dwóch razem. Nadal utknąłem w tym umyśle WebForms i nie zorientowałem się, kiedy MVC robi to dla mnie i kiedy muszę sobie z tym poradzić. – BobTheBuilder