我们正在使用Ionic构建一个跨平台的应用程序,并使用托管在azure上的ASP.NET Core WebAPI。 我们正在使用身份验证系统,但我们需要限制对我们的应用程序的API的访问。因此,如果其他应用或网站尝试访问API,则会被阻止。请注意:
请告诉我你解决这个问题的建议。
答案 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
结束班