Эй все. У меня есть приложение MVC ASP.NET, что я собираюсь быть развертыванием на живом сервере скоро. Теоретически, я хотел бы к паролю, защищают приложение, в то время как я - тестирование бета-версии, не изменяя базовую кодовую базу или членство в рамках приложения. У меня будет несколько человек тестированием бета-версии, таким образом, это будет обязательно, что это имеется в сети. Простой сценарий:
Stackoverflow использовал подобную технику, когда они являлись объектом тестирования бета-версии. Какие-либо идеи?
Редактирование для разъяснения. У меня нет доступа к IIS для этого конкретного приложения, потому что я использую управляемый хост.
Я использую dhulk - используйте проверку подлинности Windows в IIS. Этот маршрут позволит вам избежать добавления любого кода аутентификации в ваше приложение. Чем проще, тем лучше, и я бы не хотел выполнять работу по реализации системы членства, а затем и -внедрить ее.
Когда вы создаете новый проект ASP.NET MVC в Visual Studio, вы автоматически получаете AccountController, который использует базовый ASP.NET MembershipProvider для обеспечения механизма входа в систему.
Даже если у вас его нет в окончательном приложении, вы можете использовать его как временное решение, пока не получите настоящий механизм безопасности.
Требуется настроить базу данных SQL Server для этих служб ASP.NET, но в зависимости от того, насколько вы знакомы с этим, вы можете сделать это в течение десяти минут или пары часов.
Когда общедоступная бета-версия закончится, вы можете просто отказаться от AccountController и базы данных.
Я бы создал простой вид входа, который устанавливает сеанс, который проверяется на Session_Start()
в вашем файле Global.asax.... Например:
protected void Session_Start()
{
if (!Convert.ToBoolean(Session["authenticated"]))
{
// Redirect to the login View
}
}
Когда вы будете готовы открыть ваше приложение для всех, просто удалите View и три строки кода в вашем файле Global.asax.
Пара идеи:
Вы можете подключить быстрый пользовательский авторизеаэттрибут, который проверяет пользовательский файл cookie auth. Просто украшайте свои контроллеры с помощью бета и удалите их, когда будете готовы к работе.
Что-то вроде этого (PS - сделал это на лету без тестирования):
public class BetaTestAuthorize : AuthorizeAttribute
{
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
//if(cookie checks out ok)
//return true;
//else
//httpContext.Response.Redirect("BetaLoginPage");
return base.AuthorizeCore(httpContext);
}
}
имеют метод действия, подобный так:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult BetaLogin(string username, string password)
{
if(username == "whatever" && password == "whatever")
{
//create custom cookie
return RedirectToAction("Index", "Home");
}
else
return View();
}