2
我已经构建了一个不错的MVC4应用程序,决定保护它并且一切正常。下面是我用来帮助防止XSS攻击的一个例子。在ASP.NET MVC 4应用程序中安装Elmah的异常处理
public class IsPostedFromThisSiteAttribute : AuthorizeAttribute
{
public override void OnAuthorization(AuthorizationContext filterContext)
{
//TODO: - Possible problems in future:
//1. Is there a way to handle the execptions and just display a friendly error page/message.
if (filterContext.HttpContext != null)
{
if (filterContext.HttpContext.Request.UrlReferrer == null)
throw new System.Web.HttpException("Invalid Submission");
//if (filterContext.HttpContext.Request.UrlReferrer.Host != "localhost/YeatsClinical.PatientPortal.Web")
if (filterContext.HttpContext.Request.UrlReferrer.AbsolutePath != ConfigurationManager.AppSettings["SiteURL"])
throw new System.Web.HttpException("This form was not submitted from this site!");
}
}
}
我的MVC应用程序安装了Elmah,它也很棒。
问题是,我知道上面的错误,我不想显示一个异常消息,或记录它或类似的东西(所有我可以轻松做到这一点)。相反,我想通过向用户显示一个很好的小消息来正确处理它。我怎样才能改变上面的代码,以允许它显示一个很好的小消息的视图或部分视图,或者只是在某处输出一些文本,让用户知道什么地方出错了,而不会导致应用程序崩溃,也许在这种特殊情况下,将他返回到正确的登录屏幕。
谢谢你的回答。我遇到了一个错误,但它没有与此代码相关,这与我的登录页面有关,而且我得到的错误不属于问题的一部分。我做了一个示例项目,并使用你的代码来验证它的工作原理。所以,我会接受你的答案,并再次感谢你的帮助。 –