У меня есть много уровней пользовательских разрешений на моем сайте.Условное связывание ASP.NET - реализация реального мира?
Таким образом, пользователь младшего НЕ может делать то, что старшего пользователь может сделать. (есть много уровней пользователей. Старший vs junior просто для упрощения).
В дополнение на стороне сервера проверки на который пользователь и что он может/т делать - я тоже хочу НЕ предоставить Javascript функцию регистрации в первую очередь на. (Таким образом, если пользователь является младшим пользователь, то его файлы JS не должны содержать JS функции старшего пользователя.)
Примера:
Сайта имеет общий add
яваскрипт функции, которая должна появиться чтобы всех пользователей:
function add() {
console.log("Add");
}
младшие пользователи имеют более высокую привилегию, чтобы они могли также сделать subtract
. так что их файлы JS включают subtract
метод:
function substract() {
console.log("substract");
}
А обычные пользователи не будут иметь этот substract
метод
Старших пользователи имеют более высокую привилегию, чтобы они могли также сделать power
. так что их файлы JS включают power
метод:
function power() {
console.log("power");
}
Старший пользователь не будет иметь этот метод power
OK
По this answer:
Примечание что у вас должен быть отдельный пакет на странице. Вы не должны изменять один и тот же пакет на лету .... и т.д ...
Итак, я создал (на данный момент) 2 пучков, по одному для каждой страницы:
bundles.Add(new ScriptBundle("~page1Junior").Include(
"~/Scripts/General.js", "~/Scripts/Junior.js"));
bundles.Add(new ScriptBundle("~page1Senior").Include(
"~/Scripts/General.js", "~/Scripts/Senior.js"));
и тогда я беру соответствующий пакет в соответствии с некоторым логином и использования:
<script src='@Scripts.Url("~/page1Senior (or) Junior")' async> </script>
Вопрос
Это похоже на неправильный путь.
Если у меня есть 10
страниц и 10
пользовательских уровней, В соответствии с этим подходом, мне нужно будет разных пучки.
Что такое Право Способ обслуживания соответствующих файлов js для соответствующих разрешений пользователя?
Псевдо код, что я после:
user level js files(combined to one)
------------|-------------
1 [a,b]
2 [a,b,c]
3 [a,b,c,d]
4 [a,b,c,d,e]
Так что если уровень пользователя 3 вошел в систему, а затем один abcd.js
JS файл должен быть подан (уменьшенная).
Почему у вас есть один пакет на каждой странице? Это само по себе, вероятно, не очень хорошо для производительности. – usr
@usr Я этого не говорил. Я [ссылался] (http://stackoverflow.com/questions/11580274/visual-studio-2012-conditional-bundling/11658390#11658390) на ответ, в котором говорится, что претензии. Я открыт для новых идей. –
. связки на вашем макете, тогда вам не обязательно иметь его на каждом представлении. – heymega