Member 13981467 Ответов: 1

Откуда myformauthentication получает данные?


Привет, есть некоторые проблемы с проектом моего предшественника по логину.
Теперь я должен выяснить, что произойдет, если кто-то новый войдет в приложение.
Но я действительно не понимаю, что происходит во время входа в систему с помощью FormAuthentication.
Используемый код таков:
FormsAuthentication.SetAuthCookie(userName, false);
                Response.Redirect(returnURL);


Но откуда он берет эти данные?

<authentication mode="Windows">
    </authentication>
    <authorization>
      <allow users="?" />
    </authorization>
    <profile defaultProvider="DefaultProfileProvider">
      <providers>
        <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=...." connectionStringName="DefaultConnection" applicationName="/" />
      </providers>
    </profile>
    <membership defaultProvider="DefaultMembershipProvider">
      <providers>
        <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=...." connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>


Что я уже пробовал:

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

Я был бы рад, если бы кто-нибудь мог мне помочь!

1 Ответов

Рейтинг:
1

Richard Deeming

В разделе кода, который вы показали, нет доступа к каким-либо данным. Он ничего не делает для проверки пользователя. Он просто предполагает, что вы уже проверили пользователя, и устанавливает файл cookie аутентификации, чтобы сказать, что пользователь вошел в систему с указанной учетной записью.

Перед показанными строками должен быть код, который проверяет учетные данные пользователя. Вам нужно будет посмотреть на этот код, чтобы увидеть, где хранятся учетные данные.


Member 13981467

Это будет код моего процесса входа в систему:

Сессия["имя пользователя"] = имя домена + "\\" + имя пользователя;
если (строка.IsNullOrEmpty(returnURL))
{
Метод formsauthentication.RedirectFromLoginPage(имя пользователя, false);
}
еще
{
Метод formsauthentication.SetAuthCookie(имя пользователя, false);
Ответ.Перенаправление(returnURL);
}

Я пытался отладить его и не могу понять, почему в моей базе данных создается новый пользователь, когда первый раз логин с моим обычным логином для всего этого, но не работает для случайной строки

Richard Deeming

Опять же, код, который вы показали, не выполняет никакой проверки и не содержит доступа к базе данных.

Продолжайте работать в обратном направлении через код, чтобы найти часть, которая проверяет учетные данные.