gpt4 book ai didi

asp.net-mvc - 在不创建角色/用户身份验证的情况下查看 elmah 日志

转载 作者:行者123 更新时间:2023-12-02 06:21:08 25 4
gpt4 key购买 nike

我开始使用 ELMAH,我认为它很棒。我在线阅读了一些文档,但现在我的应用程序没有角色/用户授权设置。

我希望能够通过访问/elmah.axd 来读取生产环境中的错误日志,但我不想只向所有人开放它,elmah 是否具有任何允许我创建密码的功能(在 web.config 中)并通过查询字符串传递它?模仿“安全的”RSS 提要。或者类似的当然....

最佳答案

but right now my app doesn't have roles/user authorization setup

其实配置表单认证并不难:

<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 View :

@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 配置访问该站点,然后只需导航到您的私有(private)站点的/elmah.axd 处理程序即可读取您的公共(public)站点的日志。

关于asp.net-mvc - 在不创建角色/用户身份验证的情况下查看 elmah 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9404807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com