Членство в ASP.NET - PullRequest
       27

Членство в ASP.NET

0 голосов
/ 26 марта 2010

Я бы хотел использовать провайдера членства ASP.NET в следующем сценарии (с низким уровнем безопасности) ...

Моя компания будет создавать и администрировать учетные записи пользователей от имени наших клиентов. Эти учетные записи, вероятно, будут разделены между несколькими людьми в компании-клиенте ( это проблема? ).

Будет 2 типа пользователей (2 роли): клиент и администратор. Администраторы - это сотрудники моей компании, которые будут обладать особыми привилегиями для создания учетных записей клиентов и т. Д.

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

Мои внутренние пользователи (администраторы) будут устанавливать пароль для каждого клиента. Вот часть, с которой я борюсь: если клиент звонит и просит напомнить свой пароль, как мои администраторы могут узнать, какой это пароль? Могу ли я настроить поставщика для хранения пароля в виде открытого текста (или другой восстанавливаемой формы), и если да, то могу ли я получить пароль через .NET API?

Как я уже говорил, это приложение с низким уровнем безопасности, и поэтому я планирую просто показать пароль на (внутренней) веб-странице, где у меня есть список всех пользователей.

Ответы [ 2 ]

2 голосов
/ 26 марта 2010

Вот пример того, как это сделать:

<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="15">
    <providers>
      <clear />
      <add 
        name="SqlProvider" 
        type="System.Web.Security.SqlMembershipProvider" 
        connectionStringName="MySqlConnection"
        applicationName="MyApplication"
        enablePasswordRetrieval="false"
        enablePasswordReset="true"
        requiresQuestionAndAnswer="true"
        requiresUniqueEmail="true"
        passwordFormat="Clear" />
    </providers>
  </membership>

passwordFormat

Указывает формат пароля. Поставщик членства в SQL Server поддерживает форматы паролей Clear, Encrypted и Hashed. Чистые пароли хранятся в виде простого текста, что повышает производительность хранения и извлечения паролей, но менее безопасно, поскольку пароли легко читаются, если ваша база данных SQL Server взломана. Зашифрованные пароли шифруются при хранении и могут быть расшифрованы для сравнения паролей или восстановления паролей. Это требует дополнительной обработки для хранения и извлечения паролей, но является более безопасным, поскольку пароли не могут быть легко расшифрованы, если база данных SQL Server взломана. Хешированные пароли хешируются с использованием одностороннего алгоритма хеширования и случайно сгенерированного солт-значения при хранении в базе данных. Когда пароль проверен, он проверяется со значением соли в базе данных для проверки. Хешированные пароли не могут быть восстановлены.

1 голос
/ 26 марта 2010

Несмотря на низкую безопасность, лучше не хранить пароль в виде обычного текста. Поскольку вы хотите, чтобы его можно было восстановить, вам следует взглянуть на Шифрование паролей. С помощью шифрования его можно вернуть обратно в исходную форму с правильным ключом. Взгляните на раздел членства здесь

...