如何从 OWIN 中间件重定向用户?
How to redirect user from OWIN middleware?
我有用于身份验证目的的中间件,需要按类型区分用户是内部用户还是外部用户。在此之后我想将外部用户重定向到自定义错误页面,因为他们不应该访问我网站的特定部分。
我想用我的自定义状态代码抛出 HttpResponseException
并通过在 Web 配置部分 customErrors
中链接我的错误页面来处理它。但是,我不能以这种方式使用自定义状态代码,并且在我的情况下使用现有代码之一是个坏主意。
老实说,我对 OWIN 中间件还很陌生,我什至不确定要做什么 google。我将非常感谢提示如何解决这种情况。
您应该能够将 response code
(303 See Other
) 设置为 middle-ware 中的 response
object 和 location
header 到你想重定向用户的地方。
当您根据业务逻辑执行此操作时,您不应调用 next
函数,用户将被重定向到新位置(如果堆栈中没有其他 middle-ware 将更改响应)。
记得在 web api 或 mvc.
之前注册您的 middle-ware
您可以 google 获得 web api building custom middleware
。这是您可以找到的示例文章 Writing Custom Middleware for ASP.NET.
嘿,看看这个:
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 的代码是否为真,如果为真,我将创建一个新的 OWIN CONTEXT 并在那里进行重定向。
我还可以指定重定向状态代码:301/302。但如果没有它,上面的代码也可以正常工作
我有用于身份验证目的的中间件,需要按类型区分用户是内部用户还是外部用户。在此之后我想将外部用户重定向到自定义错误页面,因为他们不应该访问我网站的特定部分。
我想用我的自定义状态代码抛出 HttpResponseException
并通过在 Web 配置部分 customErrors
中链接我的错误页面来处理它。但是,我不能以这种方式使用自定义状态代码,并且在我的情况下使用现有代码之一是个坏主意。
老实说,我对 OWIN 中间件还很陌生,我什至不确定要做什么 google。我将非常感谢提示如何解决这种情况。
您应该能够将 response code
(303 See Other
) 设置为 middle-ware 中的 response
object 和 location
header 到你想重定向用户的地方。
当您根据业务逻辑执行此操作时,您不应调用 next
函数,用户将被重定向到新位置(如果堆栈中没有其他 middle-ware 将更改响应)。
记得在 web api 或 mvc.
之前注册您的 middle-ware您可以 google 获得 web api building custom middleware
。这是您可以找到的示例文章 Writing Custom Middleware for ASP.NET.
嘿,看看这个:
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 的代码是否为真,如果为真,我将创建一个新的 OWIN CONTEXT 并在那里进行重定向。 我还可以指定重定向状态代码:301/302。但如果没有它,上面的代码也可以正常工作