我開始使用ELMAH,我認爲它很棒。我在網上閱讀了一些文檔,但現在我的應用沒有角色/用戶授權設置。查看elmah日誌而不創建角色/用戶身份驗證
我希望能夠通過訪問/elmah.axd來讀取生產中的錯誤日誌,但我不想只是向所有人開放,elmah是否有任何功能可以讓我創建密碼(在web.config中)並通過querystring傳遞它?模仿一個「安全的」RSS源。什麼ofcourse類似....
我開始使用ELMAH,我認爲它很棒。我在網上閱讀了一些文檔,但現在我的應用沒有角色/用戶授權設置。查看elmah日誌而不創建角色/用戶身份驗證
我希望能夠通過訪問/elmah.axd來讀取生產中的錯誤日誌,但我不想只是向所有人開放,elmah是否有任何功能可以讓我創建密碼(在web.config中)並通過querystring傳遞它?模仿一個「安全的」RSS源。什麼ofcourse類似....
但現在我的應用程序沒有角色/用戶授權設置
其實這並不難,以配置表單身份驗證:
<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>
最後y當匿名用戶試圖訪問/elmah.axd
,他將在那裏他需要身份驗證才能登錄屏幕呈現
@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>
}
現在:OU可以有一個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
視圖訪問它。用戶名/密碼組合在web.config
。在本例中我使用了passwordFormat="Clear"
,但您也可以使用SHA1或MD5密碼。
當然,如果你不想配置驗證你也可以配置ELMAH存儲在XML文件或SQL數據庫的日誌信息,然後完全從你的公開網站面臨關閉elmah.axd處理程序。然後創建另一個ASP.NET站點,只有您可以使用指向相同日誌源的相同elmah配置訪問該站點,並且只需導航到您的私有站點的/elmah.axd處理程序即可閱讀您的公共站點的日誌。