Управление множественным доступом на веб-странице - C # - PullRequest
2 голосов
/ 03 июня 2011

В моей компании мы сейчас работаем на нашем портале.Это будет что-то вроде социальной сети.

Я работаю над «профильной» частью портала.

Мне было интересно, так как я новичок в C #, как я могуреализовать функцию «только для просмотра».

Возьмем, к примеру, Facebook.Там вы можете показывать только части своего профиля для некоторых людей, другие части для других людей, у вас есть полный доступ, поскольку другие могут вообще не иметь доступа.

Это именно то, что мне нужно реализовать.

Мы работаем с MVC3 / jQuery1.5 / WCF.

1 Ответ

0 голосов
/ 03 июня 2011

Один из вариантов - разделить ваш взгляд на дочерние действия:

@{Layout = "~/Views/Shared/Layouts/MasterLayout.cshtml";}
<div class="splitter">
    <div class="left-column">
       @Html.Action("Navigator")
       @Html.Action("MyPosts")
    </div>
    <div class="main-content">
       @Html.Action("RecentStories")
       @Html.Action("Adverts")
    </div>
</div>

Затем в вашем контроллере каждое действие решает, сможет ли текущий пользователь увидеть этот фрагмент контента, например,

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult RecentStories()
{
    if(current_user_cannot_access_this_content())
        return View("BlankView"); // Might want to render some place holder content

    // Setup necessary view data by pulling back content from the database.....

    return View(); // Render the /Views/<controller>/RecentStories.cshtml view 
}

Попробуйте по возможности кэшировать данные о правах пользователя для дочерних действий (зависит от того, как работает ваш расчет того, что видит пользователь).

Этот код предполагает, что все ваши действия выполняются на одном контроллере.Вы можете использовать другой контроллер для дочернего действия, просто передав имя контроллера в качестве второго параметра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...