gpt4 book ai didi

c# - 网页上的多重访问控制 - C#

转载 作者:太空宇宙 更新时间:2023-11-03 16:45:31 25 4
gpt4 key购买 nike

在我的公司,我们目前正在使用我们的门户网站。它将类似于社交网络。

我正在处理门户的“个人资料”部分。

我想知道,因为我是 C# 的新手,我怎样才能实现“只看我让你看什么”的功能。

以 Facebook 为例。在那里,您可以只向某些人展示您个人资料的一部分,向其他人展示其他部分,您拥有完全访问权限,因为其他人可能根本没有访问权限。

这正是我需要实现的。

我们正在使用 MVC3/jQuery1.5/WCF。

最佳答案

一个选择是将您的 View 拆分为子操作:

@{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>

然后在你的 Controller 中,每个 Action 决定当前用户是否可以看到这段内容,例如

[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
}

如果可能,请尝试跨子操作缓存用户权限数据(取决于您对用户可以看到的内容的计算方式)。

此代码假设您的所有操作都在同一个 Controller 上运行。只需将 Controller 的名称作为第二个参数传递,您就可以为子操作点击不同的 Controller 。

关于c# - 网页上的多重访问控制 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6226704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com