在站点之间共享内容/ DB

时间:2014-02-24 07:17:15

标签: asp.net asp.net-web-api

我有一个公共站点和一个基本的,安全的cms'y站点。他们将在同一台主机上。我想使用相同的数据库(从cms写入,从公共场所阅读),可以访问相同的内容(文件系统),因此我可以将图像(不是sql blob)上传到公共站点cms网站。

最好的方法是什么?是通过我的web.config中的某些权限设置吗?

我将它作为一个带有区域或命名空间的单个站点,但是我使用的是WebAPI并不支持它(是的,你可以这样做,但很快就会出现陷阱)。

1 个答案:

答案 0 :(得分:1)

这个问题有一个很长的答案和一个简短的答案。

答案简短:

  • 数据库访问将在相关站点的web.config中进行控制。多个站点可以轻松地与同一个数据库进行通信,也可以与站点的多个实例(Web场)进行通信。
  • 文件系统访问将在IIS级别进行控制。您可以通过授予用户对目录,位置和文件运行站点权限来分配对文件系统的访问权限。

答案很长

答案很长的原因是这里有多个选项,这一切都取决于你如何设置堆栈。那么你想设置两个从2个不同角度管理相同数据的站点?这里有几个选项:

<强>一

我认为最简单的方法是拥有一个包含2个Web项目的解决方案。好处:

  • 作为一个解决方案的一部分做不同事情的2个网站 - 具有逻辑意义和技术意义。
  • 然后,它们可以作为IIS中的单独站点部署,因此很容易作为单独的URL或一个URL的子域进行管理。
  • 他们可以共享一个基本上处理应用程序的公共dll,或者它们可以只是两个不同的版本

<强>两个

如果您使用的是Web API,为什么不为API中内置的两个站点提供功能,然后在API上设置访问级别以限制特定站点可以执行的活动(即管理内容与读取内容)。一些好处:

  • 两个网站使用的代码库相同,可以更轻松地整理业务逻辑。
  • 对某些功能的限制可以通过令牌或传入IP范围或许多其他选项来完成。

你有什么理由要分开这些功能吗?根据登录的用户,您可以轻松拥有动态菜单和安全性,只需更改允许用户访问的功能。 (或者,如您的帖子所示,未经身份验证的用户可以使用一组“查看”功能,还可以使用一套进行身份验证)。

  • 简易部署资料
  • 单一开发代码库
  • 常见 - 这将是许多博客框架的配置文件(例如Orchard)如果用户未登录,则用户处于查看模式 - 即任何博客阅读器 - 但是管理员/所有者可以登录以获取博客/ cms功能。