У меня есть веб-страница ASP.NET MVC4, которая по большей части доступна без аутентификации. Существует одна страница, которую я хочу защитить для доступа только для администратора (особенно журнал ошибок ELMAH). Поскольку мне нужен только один логин для входа в систему, я бы хотел избежать сложности ведения базы данных пользователя/пароля.Аутентификация на основе конфигурации в ASP.NET MVC4
Я сделал некоторые исследования, и я обнаружил, что предыдущие версии ASP.NET обеспечивает возможность использования проверки подлинности форм с паролем зашифрованного в web.config:
<forms loginUrl="Admin" name=".ASPXFORMSAUTH">
<credentials passwordFormat="SHA1">
<user name="admin" password="encryptedPassword" />
</credentials>
</forms>
Затем контроллер проверки подлинности использует FormsAuthentication.Authenticate
и FormsAuthentication.RedirectFromLoginPage
для проверки введенных учетных данных. Тем не менее, я не решаются использовать это решение, потому что:
FormsAuthentication.Authenticate
API теперь obsolete.FormsAuthentication.RedirectFromLoginPage
перенаправляет пользователя напрямую, а не возвращаетRedirectResult
. Это не соответствует конвейеру контроллера MVC, и поэтому такие вещи, как модульное тестирование, будут более сложными.
Просматривая образцы MSDN и шаблон по умолчанию, то кажется, что WebSecurity.Login
API WebMatrix является новым стандартом для выполнения проверки подлинности форм в приложениях MVC. Но я не нашел способ использовать локальный (то есть на основе конфигурации) поставщик проверки подлинности.
Есть ли рекомендуемый способ локальной аутентификации, или это считается плохой практикой? Какой самый простой способ обеспечить аутентификацию администратора без использования внешних зависимостей?
Спасибо за отзыв, я прочитаю больше о членстве в ASP.NET. Тогда я ищу «MemberhipProvider», который аутентифицируется из какого-то локального источника. –
@ScottWegner - не уверен, что вы подразумеваете под «местным источником». Если вы имеете в виду локальную базу данных, то вы, безусловно, можете использовать LocalDB или локальную базу данных SqlServer или Sql Server Express, и они отлично работают с SqlMembershipProvider (старый поставщик по умолчанию, но все еще работает). –
«Местный источник», я имею в виду источник из моего веб-проекта. Например, в файле web.config. Мне никогда не понадобится больше одного входа, поэтому я хочу избежать управления учетными данными в базе данных. –