IAuthorizationExtension.CheckAccess Yöntemi (String, IntPtr, array<Byte[], ReportOperation)
Bir kullanıcı bir öğeye erişmek için yetkili olup olmadığını gösterir rapor sunucusu veritabanı verilen rapor işlem için.
Ad Alanı: Microsoft.ReportingServices.Interfaces
Derlemeler: Microsoft.ReportingServices.SharePoint.UI.WebParts (Microsoft.ReportingServices.SharePoint.UI.WebParts içinde.dll)
Microsoft.ReportingServices.Interfaces (Microsoft.ReportingServices.Interfaces içinde.dll)
Sözdizimi
'Bildirim
<StrongNameIdentityPermissionAttribute(SecurityAction.LinkDemand, PublicKey := "0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8")> _
Function CheckAccess ( _
userName As String, _
userToken As IntPtr, _
secDesc As Byte(), _
requiredOperation As ReportOperation _
) As Boolean
'Kullanım
Dim instance As IAuthorizationExtension
Dim userName As String
Dim userToken As IntPtr
Dim secDesc As Byte()
Dim requiredOperation As ReportOperation
Dim returnValue As Boolean
returnValue = instance.CheckAccess(userName, _
userToken, secDesc, requiredOperation)
[StrongNameIdentityPermissionAttribute(SecurityAction.LinkDemand, PublicKey = "0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8")]
bool CheckAccess(
string userName,
IntPtr userToken,
byte[] secDesc,
ReportOperation requiredOperation
)
[StrongNameIdentityPermissionAttribute(SecurityAction::LinkDemand, PublicKey = L"0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8")]
bool CheckAccess(
String^ userName,
IntPtr userToken,
array<unsigned char>^ secDesc,
ReportOperation requiredOperation
)
[<StrongNameIdentityPermissionAttribute(SecurityAction.LinkDemand, PublicKey = "0024000004800000940000000602000000240000525341310004000001000100272736ad6e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8")>]
abstract CheckAccess :
userName:string *
userToken:IntPtr *
secDesc:byte[] *
requiredOperation:ReportOperation -> bool
function CheckAccess(
userName : String,
userToken : IntPtr,
secDesc : byte[],
requiredOperation : ReportOperation
) : boolean
Parametreler
- userName
Tür: System.String
Rapor sunucusu erişim isteyen kullanıcının adı.
- userToken
Tür: System.IntPtr
Bir kullanıcı hesabı simgesi.Bu belirteç, öncelikle Windows kimlik doğrulaması için Kimlik Yönetimi'nın bir Microsoft Windows hesabı için bir tanıtıcı olarak rapor sunucusu tarafından kullanılır.
- secDesc
Tür: array<System.Byte[]
öğe için güvenlik tanımlayıcısı.
- requiredOperation
Tür: Microsoft.ReportingServices.Interfaces.ReportOperation
Belirli bir kullanıcı için rapor sunucusu tarafından istenen işlem.
Dönüş Değeri
Tür: System.Boolean
Döndürür doğru şu anda kimliği doğrulanmış kullanıcının erişim sağlanan işlemi ve güvenlik tanımlayıcısını temel alan öğe verilir.
Örnekler
Aşağıdaki kod örneği kullanır CheckAccess karşı bir güvenlik açıklayıcısı öğe kullanıcı yetkilendirme kimlik bilgileri değerlendirmek için bir yöntem rapor sunucusu veritabanı.
Public Function CheckAccess(userName As String, userToken As IntPtr, secDesc() As Byte, requiredOperation As ReportOperation) As Boolean
Dim acl As AceCollection = DeserializeAcl(secDesc)
Dim ace As AceStruct
For Each ace In acl
' First check to see if the user or group has an access control entry for the item
If userName = ace.PrincipalName Then
' If an entry is found, return true if the given required operation
' is contained in the ACE structure.
Dim aclOperation As ReportOperation
For Each aclOperation In ace.ReportOperations
If aclOperation = requiredOperation Then
Return True
End If
Next aclOperation
End If
Next ace
Return False
End Function 'CheckAccess
Private Function DeserializeAcl(secDesc() As Byte) As AceCollection
Dim bf As New BinaryFormatter()
Dim sdStream As New MemoryStream(secDesc)
Dim acl As AceCollection = CType(bf.Deserialize(sdStream), AceCollection)
Return acl
End Function 'DeserializeAcl
public bool CheckAccess(string userName, IntPtr userToken, byte[] secDesc, ReportOperation requiredOperation)
{
AceCollection acl = DeserializeAcl(secDesc);
foreach(AceStruct ace in acl)
{
// First check to see if the user or group has an access control entry for the item
if (userName == ace.PrincipalName)
{
// If an entry is found, return true if the given required operation
// is contained in the ACE structure.
foreach(ReportOperation aclOperation in ace.ReportOperations)
{
if (aclOperation == requiredOperation)
return true;
}
}
}
return false;
}
private AceCollection DeserializeAcl(byte[] secDesc)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream sdStream = new MemoryStream(secDesc);
AceCollection acl = (AceCollection)bf.Deserialize(sdStream);
return acl;
}