我有一个应用程序,它使用自己的授权来确定用户是否可以访问页面。我希望在访问被拒绝的情况下显示更友好的“访问被拒绝”页面。在MasterPage中......
if (!authorize)
{
throw new UnauthorizedAccessException(); //error occurs here, looks like I'm not allowed to use this class
}
在web.config
中<customErrors mode="Off" defaultRedirect="~/ErrorPages/ErrorPage.aspx">
<error statusCode="403" redirect="AccessDeniedPage.aspx" />
</customErrors>I get the error below.
我似乎只是因为尝试实例化/使用UnauthorizedAccessException()
类而得到错误。我想这样做,有没有办法使用它?
/**************************************************************************************************************************
Attempted to perform an unauthorized operation.
Exception Details: System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.
ASP.NET is not authorized to access the requested resource. Consider granting access rights to the resource to the ASP.NET request identity. ASP.NET has a base process identity (typically {MACHINE}\ASPNET on IIS 5 or Network Service on IIS 6 and IIS 7, and the configured application pool identity on IIS 7.5) that is used if the application is not impersonating. If the application is impersonating via <identity impersonate="true"/>, the identity will be the anonymous user (typically IUSR_MACHINENAME) or the authenticated request user.
*************************************************************************************************************************/
答案 0 :(得分:2)
正如弗雷德里克所说,你输了一个错误,所以你得到一个错误。如果你想实例化异常,请不要使用throw。
UnauthorizedAccessException uae = new UnauthorizedAccessException(“some message”);
但同样,这只是创造了一个例外;一旦你抛出它,你就会得到你已经得到的信息。
为什么不重定向? Response.Redirect(“〜/ AccessDeniedPage.aspx”,False);
如果您确实想要使用该异常,则可以继续按原样抛出异常,但也可以处理Global.asax文件的Application_Error事件中的异常。在Application_Error事件中,测试异常是否为UnauthorizedAccessException,如果是,则将用户重定向到AccessDeniedPage.aspx。 Application_Error的基本用法:MSDN
答案 1 :(得分:0)
好吧,你 投掷UnauthorizedAccessException
。如果没有try-catch
捕获它,代码将在那里崩溃。我认为您看到的异常是您的例外。