当前位置: 首页>>代码示例>>VB.NET>>正文


VB.NET ServiceAuthorizationManager.CheckAccess方法代码示例

本文整理汇总了VB.NET中System.ServiceModel.ServiceAuthorizationManager.CheckAccess方法的典型用法代码示例。如果您正苦于以下问题:VB.NET ServiceAuthorizationManager.CheckAccess方法的具体用法?VB.NET ServiceAuthorizationManager.CheckAccess怎么用?VB.NET ServiceAuthorizationManager.CheckAccess使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在System.ServiceModel.ServiceAuthorizationManager的用法示例。


在下文中一共展示了ServiceAuthorizationManager.CheckAccess方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的VB.NET代码示例。

示例1: myServiceAuthorizationManager

Public Class myServiceAuthorizationManager
    Inherits ServiceAuthorizationManager

    ' Override the CheckAccess method to enforce access control requirements.
    Public Overloads Overrides Function CheckAccess(ByVal operationContext As OperationContext) As Boolean
        Dim authContext = operationContext.ServiceSecurityContext.AuthorizationContext
        If authContext.ClaimSets Is Nothing Then
            Return False
        End If

        If authContext.ClaimSets.Count <> 1 Then
            Return False
        End If

        Dim myClaimSet = authContext.ClaimSets(0)
        If Not IssuedBySTS_B(myClaimSet) Then
            Return False
        End If
        If myClaimSet.Count <> 1 Then
            Return False
        End If
        Dim myClaim = myClaimSet(0)
        If myClaim.ClaimType = "http://www.tmpuri.org:accessAuthorized" Then
            Dim resource = TryCast(myClaim.Resource, String)
            If resource Is Nothing Then
                Return False
            End If
            If resource <> "true" Then
                Return False
            End If
            Return True
        Else
            Return False
        End If
    End Function

    ' This helper method checks whether SAML Token was issued by STS-B.     
    ' It compares the Thumbprint Claim of the Issuer against the 
    ' Certificate of STS-B. 
    Private Function IssuedBySTS_B(ByVal myClaimSet As ClaimSet) As Boolean
        Dim issuerClaimSet = myClaimSet.Issuer
        If issuerClaimSet Is Nothing Then
            Return False
        End If
        If issuerClaimSet.Count <> 1 Then
            Return False
        End If
        Dim issuerClaim = issuerClaimSet(0)
        If issuerClaim.ClaimType <> ClaimTypes.Thumbprint Then
            Return False
        End If
        If issuerClaim.Resource Is Nothing Then
            Return False
        End If
        Dim claimThumbprint() = CType(issuerClaim.Resource, Byte())
        ' It is assumed that stsB_Certificate is a variable of type 
        ' X509Certificate2 that is initialized with the Certificate of 
        ' STS-B.
        Dim stsB_Certificate = GetStsBCertificate()
        Dim certThumbprint() = stsB_Certificate.GetCertHash()
        If claimThumbprint.Length <> certThumbprint.Length Then
            Return False
        End If
        For i = 0 To claimThumbprint.Length - 1
            If claimThumbprint(i) <> certThumbprint(i) Then
                Return False
            End If
        Next i
        Return True
    End Function
开发者ID:VB.NET开发者,项目名称:System.ServiceModel,代码行数:70,代码来源:ServiceAuthorizationManager.CheckAccess

示例2: myService_M_AuthorizationManager

Public Class myService_M_AuthorizationManager
    Inherits ServiceAuthorizationManager

    ' set max size for message
    Private someMaxSize As Integer = 16000

    Public Overrides Function CheckAccess(ByVal operationContext As OperationContext, _
                                          ByRef message As Message) As Boolean
        Dim accessAllowed = False
        Dim requestBuffer = Message.CreateBufferedCopy(someMaxSize)

        ' do access checks using the message parameter value and set accessAllowed appropriately
        If accessAllowed Then
            ' replace incoming message with fresh copy since accessing the message consumes it
            Message = requestBuffer.CreateMessage()
        End If
        Return accessAllowed
    End Function
End Class
开发者ID:VB.NET开发者,项目名称:System.ServiceModel,代码行数:19,代码来源:ServiceAuthorizationManager.CheckAccess


注:本文中的System.ServiceModel.ServiceAuthorizationManager.CheckAccess方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。