Доступ к флагу авторизации из «Просмотр данных в JavaScript» (ASP.NET MVC) - PullRequest
0 голосов
/ 20 октября 2011

У меня есть onclick, который не должен быть доступен анонимным пользователям.

Я сейчас взломал его вместе, используя элемент флага:

@if (ViewBag.User != null)
{
    <div id="userAuthenticated"></div>                        
}

и в jQuery:

$('.whatever').click(function() {
    if ($('#userAuthenticated').length) {
         // ... do something
    }
});

Это просто немного неприятно, но я не знаю лучшего способа сделать это. Какова лучшая практика для обработки этого сценария. Есть какой-то изящный трюк, о котором я не знаю?

1 Ответ

1 голос
/ 20 октября 2011

Вместо этого я бы предложил иметь два отдельных файла javascript, mysite-authorized.js и mysite-anon.js, и исключить любые функции для авторизованных пользователей только из файла anon. Затем в файле макета установите файл js для обслуживания на основе уровня авторизации.

Таким образом, вы избегаете любых флагов авторизации, которых может избежать опытный пользователь.

приписка

По вашему мнению, у вас уже есть средство для проверки авторизации:

if (this.ViewContext.HttpContext.User.Identity.IsAuthenticated)
{
    // authenticated user js file here
}
else
{
    // anon user js file here
}
...