Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Ve výchozím nastavení běží vlastní assembler s omezenou sadou oprávnění pro vykonání . V některých případech můžete chtít implementovat vlastní sestavení, které provádí zabezpečená volání chráněných zdrojů uvnitř vašeho bezpečnostního systému (například souboru nebo registru). K tomu musíte podniknout následující kroky:
Identifikujte přesná oprávnění, která váš kód potřebuje k uskutečnění zabezpečeného hovoru. Pokud je tato metoda součástí knihovny Microsoft .NET Frameworku, měly by být tyto informace zahrnuty v dokumentaci metody.
Upravte konfigurační soubory politiky serveru reportů, aby bylo přizpůsobené sestavení uděleno požadovaná oprávnění. Pro více informací o konfiguračních souborech bezpečnostních politik viz Using Reporting Services Security Policy Files.
Uplatněte požadovaná oprávnění jako součást metody, při níž je bezpečné volání provedeno. To je nutné, protože vlastní assemblerový kód, který je volán report serverem, je součástí report expression host assembly, která běží ve výchozím nastavení s oprávněním Execution . Sada oprávnění Execution umožňuje běžet kódu, ale ne používat chráněné zdroje.
Označte vlastní sestavu AllowPartiallyTrustedCallersAttribute (AllowPartiallyTrustedCallersAtribut ), pokud je podepsána silným jménem. To je nutné, protože vlastní sestavy jsou volány z reportového výrazu, který je součástí report expression host assembly, který ve výchozím nastavení není FullTrust udělen; Takže je to "částečně důvěryhodný" volající. Pro více informací viz Použití Strong-Named zakázkových sestav.
Implementace bezpečného volání
Můžete upravit konfigurační soubory politik tak, aby vám přidělovaly specifická oprávnění pro assembler. Například pokud píšete vlastní sestavu pro převod měn, možná budete muset číst aktuální měnové kurzy ze souboru. Pro získání informací o rychlosti byste museli přidat další bezpečnostní oprávnění FileIOPermission do vaší sady oprávnění pro assembler. V konfiguračním souboru politiky můžete udělat následující dodatečný záznam:
<PermissionSet class="NamedPermissionSet"
version="1"
Name="CurrencyRatesFilePermissionSet"
Description="A special permission set that grants read access to my currency rates file.">
<IPermission class="FileIOPermission"
version="1"
Read="C:\CurrencyRates.xml"/>
<IPermission class="SecurityPermission"
version="1"
Flags="Execution, Assertion"/>
</PermissionSet>
Poté přidáte skupinu kódu, která odkazuje na tuto sadu oprávnění:
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="CurrencyRatesFilePermissionSet"
Name="MyNewCodeGroup"
Description="A special code group for my custom assembly.">
<IMembershipCondition class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSRS10_50.MSSQLSERVER\MSSQL\Reporting Services\ReportServer\bin\CurrencyConversion.dll"/>
</CodeGroup>
Aby váš kód získal odpovídající oprávnění, musíte toto oprávnění uplatnit ve svém vlastním assemblerovém kódu. Například pokud chcete přidat přístup pouze pro čtení do XML souboru, C:\CurrencyRates.xml, musíte do své metody přidat následující kód:
// C#
FileIOPermission permission = new FileIOPermission(FileIOPermissionAccess.Read, @"C:\CurrencyRates.xml");
try
{
permission.Assert();
// Load the XML currency rates file
XmlDocument doc = new XmlDocument();
doc.Load(@"C:\CurrencyRates.xml");
...
Můžete také přidat atribut atributu atributu atrakcí:
[FileIOPermissionAttribute(SecurityAction.Assert, Read=@"C:\CurrencyRates.xml")]
Pro více informací viz ".NET Framework Security" v .NET Framework Developer's Guide.