我目前正在努力弄清楚如何最好地为我的应用程序实施管理方面。
我有一个用户站点,用户可以登录,自定义他们的个人资料,提交信息等。 我希望管理用户能够登录并能够从用户列表中进行选择。从那里,管理员可以像用户一样为用户提交信息。
Website Start Page > RogerRabbit > Submit Information
Website Start Page > BillyBob > Customize Profile
所以我的问题是:
任何建议或提示都会很棒。
答案 0 :(得分:1)
我不知道......那是一个广泛的问题。有点像问“如何在asp.net中建立一个网站”。
这听起来非常像你需要投资一本涵盖这些主题领域的介绍性“how-to asp.net书”。好消息是,几乎每个初学者到中级asp.net的书籍都可能会出现在大部分主题领域。
希望管理用户能够登录并能够从用户列表中进行选择。从那里,管理员可以像用户一样为用户提交信息。
这是一种冒充......而且比听起来要困难得多。但是你如何做到这一点取决于你的应用程序如何验证用户,授权用户和管理角色...这是asp.net中的一个完整的子专业(实际上有它自己的专用书)。
1)我的网页应如何布局?
小心?
2)Web.sitemap文件应该如何显示?有没有一种很好的方法来创建站点地图(可能在内存中?)
MSDN quite thouroughly涵盖了这一点。是的,您可以在内存中创建站点地图。我过去曾多次使用存储在SQL DB中的数据创建站点地图,但我不知道从哪里开始解释它。您必须了解站点地图使用的基类和接口,然后使自定义站点地图提供程序适合处理站点结构的数据和规则。
3)此方法是否必须使用会话变量?
可能。大多数意识到“登录用户”的网站都需要会话。不是普遍的,但几乎是如此。
答案 1 :(得分:1)
我无法回答您的站点地图问题,但我已经在我们的某个系统上实现了这样的解决方案,在那里我可以通过模拟他们看到最终用户看到的确切内容。我这样做主要是为了排除故障,这样当他们向我报告问题时(例如他们的观点中缺少某些内容),我可以像他们一样进入并查看他们正在谈论的内容。
我这样做的方式,实际上有点粗糙,就是在我的数据库中有一个模拟表,其中包含正在进行模拟的用户的登录名以及他们希望模拟的用户的登录。 / p>
我添加了一些覆盖代码,以便当用户第一次访问该页面时(它使用Windows身份验证),它将检查该用户是否在表中设置了模拟,然后将此用户ID放在一个对象中会话状态。如果没有模拟,它会将实际用户ID放在同一个对象中。
为了防止我对用户的数据执行操作,此对象中有两个属性,一个用于logon_name,即系统用于内容自定义的属性,另一个名为NameForLog,用于记录任何动作。我所做的所有操作都将记录为我。
网站上显示用户自定义内容的所有区域都会查看此会话对象,因此他们将始终使用模拟ID,因此始终会向我显示用户看到的内容。除了第一页和日志记录代码之外,它甚至不知道它正在处理它。
这不是最干净的解决方案,但它对我来说效果很好。