【发布时间】:2015-06-22 16:52:55
【问题描述】:
我正在使用 Owin 来托管 WebAPI 控制器。我有 Owin 中间件,它执行身份验证并在身份验证失败时设置以下内容:
context.Response.StatusCode = (int) HttpStatusCode.Unauthorized;
发生这种情况时,我想向用户显示一个带有一些说明的 HTML 页面。 (例如,“您需要登录。”)
目前我只是将用户重定向到 accessdenied.html 页面,但我希望直接显示拒绝访问而不重定向用户(我不希望 Web 浏览器中的 Location 字段改变)。
我假设我可以即时生成 HTML 并将其添加到响应中,例如通过从资源中读取 HTML 内容。
我的问题是:是否可以使用配置自动显示自定义访问被拒绝错误页面?在“传统”ASP.NET 中,可以在 web.config 中设置 customErrors,但这似乎不适用于 Owin selfhost:
<customErrors>
<error statusCode="401" redirect="~/accessdenied.html"/>
</customErrors>
【问题讨论】:
标签: c# authentication asp.net-web-api owin custom-error-pages