gpt4 book ai didi

c# - 在 ASP.NET 中向用户显示预期的错误

转载 作者:太空狗 更新时间:2023-10-29 21:36:28 27 4
gpt4 key购买 nike

我找到了大量关于如何在 ASP.NET 中使用 Page_Error 和 Application_Error 方法以及 Web.config 中的 customErrors 指令处理意外错误的信息(即 this)。

但是,我的问题是处理预期错误的最佳方法是什么。比如我有一个页面显示一条记录。每条记录都有一个特定的允许查看它的用户列表。由于许多用户可能具有不在上述列表中的“查看记录”角色,因此我必须在页面上编写一些代码来过滤它们。

protected void Page_Load(object sender, EventArgs e)
{
var user = Membership.GetUser();
if (!CanUserViewThisRecord(Request["id"], user.Username)
{
// Display an error to the user that says,
// "You are not allowed to view this message", and quit.
}
else
{
// Display the page.
}
}

处理此类错误的最佳做法是什么?我能想到几种可能性:

  1. 重定向到错误页面。
  2. 在每个页面上放置一个名为“lblErrorText”的标签。除非有错误,否则请留空。
  3. 引发异常并让标准错误处理处理它。

这感觉像是一个基本问题,对此我深表歉意,但我发现的几乎所有内容都与意外异常有关。并不是说上述任何一种可能性都难以实现,但如果可能的话,我想使用一种标准的、推荐的方法。

注意:感谢大家的回答。我想澄清的是,用户将无法单击指向允许他们查看的记录的链接。这个问题更多是为了防御。例如,由于记录 ID 在 URL 中,因此有人可能会在地址栏中输入禁止记录的 ID。或者,被允许的用户 A 可能会通过电子邮件将链接发送给不允许的用户 B。看来我可能没有以正确的方式使用“异常”和“错误”这两个词,但希望这个场景是有意义的。

最佳答案

为了优雅地失败,我会选择在页面上显示一条消息。

更好的是防止错误;如果您提前知道用户将无法在该页面上执行任何操作,请不要提供指向该页面的链接。通常,用户应该只看到允许他们做的事情。

关于c# - 在 ASP.NET 中向用户显示预期的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4993882/

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