首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据Web / Asp.Net身份验证HTML-5音频下载请求?

如何根据Web / Asp.Net身份验证HTML-5音频下载请求?
EN

Stack Overflow用户
提问于 2015-12-26 17:50:09
回答 1查看 933关注 0票数 9

我需要从我的Web中传输音频。在标准的HTML-5音频中,src属性设置为WebAPI音频的URI。

问题是:使用Asp.Net标识保护的Web需要在标头中传递承载令牌,但是HTML音频标记不允许我们这样做。最后,我被遗漏了两种选择:

方法1.使用XHR请求和本地播放下载HTML。 方法2.通过查询字符串传递标头。这样,我们就可以在请求处理的时间点将令牌注入OWIN管道。

第一种方法是不可行的,因为如果我们在本地下载音频,就会忽略Web提供的流特性。

请您协助方法-2,即在Web方面,我们可以从Asp.Net读取承载令牌&然后启动Asp.Net身份验证?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-16 20:07:20

创建此提供程序类

代码语言:javascript
复制
public class QueryStringOAuthBearerProvider : OAuthBearerAuthenticationProvider
{
    public override Task RequestToken(OAuthRequestTokenContext context)
    {
        var value = context.Request.Query.Get("access_token");

        if (!string.IsNullOrEmpty(value))
        {
            context.Token = value;
        }

        return Task.FromResult<object>(null);
    }
}

在Startup.cs中使用它

代码语言:javascript
复制
OAuthOptions = new OAuthAuthorizationServerOptions
{
    TokenEndpointPath = new PathString("/Token"),
    Provider = new ApplicationOAuthProvider(PublicClientId),
    AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
    AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
    // In production mode set AllowInsecureHttp = false
    AllowInsecureHttp = true                
};

// Enable the application to use bearer tokens to authenticate users

//app.UseOAuthBearerTokens(OAuthOptions);   // old line

app.UseOAuthAuthorizationServer(OAuthOptions); // new line

// Enable the application to retrieve tokens from query string to authenticate users
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions()
{
    Provider = new QueryStringOAuthBearerProvider()
});

现在,它将从url“./?access_ token =xxxxxxx”获得令牌,并尝试验证它。

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

https://stackoverflow.com/questions/34473724

复制
相关文章

相似问题

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