首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用令牌重定向到Blazor

如何用令牌重定向到Blazor
EN

Stack Overflow用户
提问于 2019-03-25 14:58:47
回答 1查看 4K关注 0票数 2

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

问题是,我将token放在请求查询中,并希望它位于请求的正文中。

中间件:

代码语言:javascript
复制
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);
}

配置:

代码语言:javascript
复制
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]和我不知道why.Any是谁,我尝试过为Blazor的入口页面设置两条路由,并且它没有加载它。

代码语言:javascript
复制
@page "/"
@page "/?token={token}"
@inherits HomeBase
@functions()
{

}

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-25 20:19:03

1)要从get参数中检索token,您应该解析current url,您可以在HomeBase中这样做

代码语言:javascript
复制
        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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55340677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档