но сейчас мое приложение не имеет настройки ролей / авторизации пользователей
На самом деле настроить аутентификацию форм не так уж сложно:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880">
<credentials passwordFormat="Clear">
<user name="admin" password="secret" />
</credentials>
</forms>
</authentication>
, а затемЗащищайте elmah.axd
:
<location path="elmah.axd">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
и, наконец, вы можете иметь AccountController
:
public class AccountController : Controller
{
public ActionResult LogOn()
{
return View();
}
[HttpPost]
public ActionResult LogOn(string username, string password)
{
if (FormsAuthentication.Authenticate(username, password))
{
FormsAuthentication.SetAuthCookie(username, false);
return Redirect("~/elmah.axd");
}
else
{
ModelState.AddModelError("", "The user name or password provided is incorrect.");
}
return View();
}
}
и LogOn.cshtml
представление:
@Html.ValidationSummary(false)
@using (Html.BeginForm())
{
<div>
@Html.Label("username")
@Html.TextBox("username")
</div>
<div>
@Html.Label("password")
@Html.Password("password")
</div>
<p>
<input type="submit" value="Log On" />
</p>
}
Сейчаскогда анонимный пользователь пытается получить доступ к /elmah.axd
, ему будет представлен экран входа в систему, где он должен пройти аутентификацию, чтобы получить к нему доступ.Комбинация имени пользователя и пароля находится в web.config
.Я использовал passwordFormat="Clear"
в этом примере, но вы также можете использовать SHA1 или MD5 пароль.
Конечно, если вы не хотите настраивать аутентификацию, вы также можете настроить elmah для хранения информации регистрации вXML-файл или базу данных SQL, а затем полностью отключите обработчик elmah.axd на общедоступном веб-сайте.Затем создайте другой сайт ASP.NET, к которому только у вас будет доступ с той же конфигурацией elmah, указывающей на тот же источник журнала, и просто перейдите к обработчику /elmah.axd вашего частного сайта, чтобы прочитать журналы вашего общедоступного сайта.