【问题标题】:How to redirect to Blazor with token如何使用令牌重定向到 Blazor
【发布时间】:2019-08-15 20:44:21
【问题描述】:

我有一个Middleware,它执行身份验证,然后应该重新路由到Blazor Web 应用程序。

问题是我在请求查询中得到了token,我希望它在请求的正文中。

中间件:

public async Task Invoke(HttpContext context) {
    string token = context.Request.Query["token"];

    if (!context.User.Identity.IsAuthenticated) {
         //do some logic to authenticate
    }
    else  
        await this.next(context);
}

配置:

public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
{
    app.UseResponseCompression();
    app.UseAuthentication();
    app.UseMiddleware<MultiAuthWare>();

    app.UseMvc(routes => {
                routes.MapRoute(name: "default", template: "{controller}/{action}/{id?}");
    });

    app.UseBlazor<Client.Startup>();
}

Blazor 入口点:

服务器重定向到:http://localhost:[portno]/?token=[a string],我不知道为什么。任何我尝试为Blazor 的入口页面设置两条路由的人都没有加载它。

@page "/"
@page "/?token={token}"
@inherits HomeBase
@functions()
{

}

PS:我不明白为什么服务器将token放在查询字符串中?

【问题讨论】:

    标签: cookies middleware blazor


    【解决方案1】:

    1) 要从获取参数中检索token,您应该解析current url,您可以在HomeBase 中进行:

            var url = UriHelper.GetAbsoluteUri();  // By injection (see link)
            var uriBuilder = new UriBuilder(url);  // System namespace
            var q = System.Web.HttpUtility.ParseQueryString(uriBuilder.Query);
            var token = q["token"];
    

    2)当您谈论在正文中发送令牌时,我不明白您问题的第二部分。

    更多信息Get current Url in a Blazor component

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      • 1970-01-01
      • 2020-02-26
      • 2021-05-12
      • 2020-08-01
      • 2014-12-14
      相关资源
      最近更新 更多