我有用于身份验证的中间件,如果用户是内部或外部,则需要按类型区分用户。在此之后,我想将外部用户重定向到自定义错误页面,因为他们不应该访问我的网站的特定部分。
我希望将B
与我的自定义状态代码一起投放,并通过将web配置的A
部分与我的错误页面链接来处理它。但是,我无法以这种方式使用自定义状态代码,并且在我的情况下使用现有代码之一是个坏主意。
老实说,我对OWIN中间件很新,我甚至不确定要google什么。我将非常感谢提示如何解决这种情况。
答案 0 :(得分:3)
嘿看看这个:
public void Configuration(IAppBuilder app)
{
ConfigureApp(app);
//Some other code here
if (_helper.IsNew())
{
Debug.Write("This is a new guy. Redirect him to the setup page permanently");
var ctx = new OwinContext();
ctx.Response.Redirect("/Setup");//This is how I redirect from Startip.cs
}
}
观察我在IF中检查truthy的代码,如果是,我将创建一个新的OWIN语境并在那里进行重定向。 我还可以指定重定向状态代码:301/302。但没有它,上面的代码也可以正常工作
答案 1 :(得分:0)
您应该能够将response code
(303 See Other
)设置为中间件中的response
对象,并将location
标头设置为您要重定向用户的位置。< / p>
当您根据业务逻辑执行此操作时,不应调用next
函数,并且用户将被重定向到新位置(如果堆栈中没有其他中间件将更改响应)。
请记得在web api或mvc之前注册您的中间件。
您可以谷歌搜索web api building custom middleware
。以下是您可以找到Writing Custom Middleware for ASP.NET的示例文章。