限制访问Web API到应用程序

时间:2017-02-28 13:56:59

标签: asp.net-web-api ionic-framework asp.net-core asp.net-core-webapi

我们正在使用Ionic构建一个跨平台的应用程序,并使用托管在azure上的ASP.NET Core WebAPI。 我们正在使用身份验证系统,但我们需要限制对我们的应用程序的API的访问。因此,如果其他应用或网站尝试访问API,则会被阻止。请注意:

  • 网络应用是SSL安全的
  • 我被告知发送共享代码 没有用,因为它可以从二进制文件
  • 中获取

请告诉我你解决这个问题的建议。

1 个答案:

答案 0 :(得分:0)

根据要求,这是授权过滤器的shell。 我们发送一个序列化和加密的JSON对象。

公共类XxxxxxFilter     继承AuthorizationFilterAttribute

Public Overrides Sub OnAuthorization(actionContext As System.Web.Http.Controllers.HttpActionContext)

    Dim authHeader As System.Net.Http.Headers.AuthenticationHeaderValue = actionContext.Request.Headers.Authorization

    If authHeader IsNot Nothing Then

        '... then check that its set to basic auth with an actual parameter ....
        If String.Compare("basic", authHeader.Scheme, True) = 0 AndAlso String.IsNullOrWhiteSpace(authHeader.Parameter) = False Then

            Dim cred As String = Encoding.GetEncoding("iso-8859-1").GetString(Convert.FromBase64String(authHeader.Parameter))

            ' validate the cred value however needed
            ' you want to exit at this point if all is ok

        End If

    End If

    ' ... if we get this far then authentication has failed 
    actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.Unauthorized)

End Sub

结束班