SSRS проверяет, входит ли пользователь в группу, используя пользовательскую сборку

Я создал пользовательскую сборку для своего проекта SSRS.

Пользовательская сборка имеет 2 функции: IsInGroupи MyTest:

using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Principal;

namespace SSRS_Custom_Fuctions
{
    public class Class1
    {

        public static bool IsInGroup(string user, string group)
        {
            using (var identity = new WindowsIdentity(user))
            {
                var principal = new WindowsPrincipal(identity);
                return principal.IsInRole(group);
            }
        }

        public static string MyTest()
        {
            return "Hello World";
        }
    }
}

. 1 )Базовая функция MyTest, которая возвращает строку «Hello World», прекрасно работает из отчета с использованием выражения=SSRS_Custom_Functions.Class1.MyTest()

2 )Функция IsInGroup, которая возвращает логическое значение, не работает. Это использует пространство имен System.Security.Principal, чтобы проверить, существует ли имя пользователя, переданное функции, в группе, переданной функции. При попытке вызвать его с помощью выражения =SSRS_Custom_Functions.Class1.IsInGroup(User.User1, "MyGroupName")отчет вылетает со следующим сообщением об ошибке:

request for the permission of type System.Security failed

Я изменил файлы конфигурации rssrvpolicy.configв пути к файлу ReportingServices и RSPreviewPolicy.configв пути к файлу VisualStudio в соответствии с Microsoft KB920769 .

Я добавил CodeGroup, который дает FullTrustмоей пользовательской сборке.

В элемент уровня политики добавлено следующее:





Я все еще получаю то же сообщение об ошибке, что и выше.

8
задан Adi Lester 4 August 2012 в 20:24
поделиться