[ASP.NET] Ukrywanie kodu


(szydera_) #1

Witam serdecznie,

nie mogę sobie poradzić z taką sprawą... otóż chciałbym zrobić coś takiego, że w programie który ma być i dla admina i dla usera była taka funkcjonalność, że pewna rzecz będzie widoczna tylko dla tego pierwszego. Z tym, że nie chodzi o zwykłą zmianę Visible, a o coś takiego aby kod nieprzeznaczony dla usera w ogóle nie był dla niego dostępny (chodzi mi żeby w Pokaż źródło go nie było...).

Da się coś takiego zrobić? Słyszałem, że się da, ale jeszcze nie udało się znaleźć.

Proszę o jakąś sugestię? Może coś w stylu <% %> i w tym jakiegoś ifa na tej części kodu, który chce ukryć?


(Tomek Matz) #2

Wydaje mi się, że sam już sobie odpowiedziałeś. Jeśli masz plik "code-behind" to użyj Visible = false (nie wiem co Ci tu nie działa). Jeśli nie masz tego pliku i tworzysz "inline" to skorzystaj z <% %>, a tutaj przykład:

<% if (User.IsInRole("admin")) { %>

  You can see this

<% } else { %>

  You are no admin fool!

<%} %>

pochodzący z tej strony http://naspinski.net/post/inline-aspnet-tags-sorting-them-all-out-%283c25242c-3c253d2c-3c252c-3c252c-etc%29.aspx.

Generalnie staraj się nie mieszać inline i code-behind chyba, że już nie będziesz miał innego wyjścia.


(szydera_) #3

To chyba sytuacja, że nie miałem innego wyjścia. A nie działało mi z zupełnie innego powodu, zrobiłem sam, ale dzięki za odpowiedź :wink:

Aha, nie Visible="false", bo to mi nie zapewni tego co chcę.

zrobiłem:

<% (tu funkcja, która sprawdza kim jestem, zwraca true/false)() {

tu kod, którego ma nie widzieć user

<% } %>

(Tomek Matz) #4

Czemu Visible = false nie zapewni Ci tego co chcesz? Chcesz ukryć kod przed użytkownikiem. Właśnie po to jest ta właściwość.

http://msdn.microsoft.com/en-us/library/system.web.ui.control.visible.aspx - Sekcja Remarks.