好吧,

我知道我做错了但找不出更好的方式。我正在开发一个网站,这将允许用户设定他们自己的微型网站。

喜欢的东西宁。还有,我只有1基本的登录和访问的每个迷你网站的设置(现在)通过角色。

所以我的方式这样做的权利现在是:

每次一个新的微型网站-说等等,我创建2个角色我应用程序。blah_usersblah_admin

用户创建的迷你网站的作用-blah_admin和其他用户希望加入这个迷你网站(或网络)被赋予的作用-blah_user.

任何人都可以查看数据从任何网站。但是,要添加数据,必须是一个成员的小型的网站(必须具有blah_user角色分配)

这个问题,我现在面临的是,通过做一个基于角色的系统中,我有做到负荷的东西。Asp.Net 2控制其工作的用户。IsAunthenticated财产基本上都是没用的,我现在因为随着IsAuthenticated酒店,我还必须检查,如果用户拥有适当的作用。

我猜有一个更好的方式设计的系统,但我不知道如何。任何想法?

这个网站正在开发中ASP.Net 2在IIS6.由于一公吨!

有帮助吗?

解决方案

我害怕标准的角色有关的东西ASP.NET 不你需要什么。你可以试图改变身份验证的模块,因此它将:

  1. 记录你的cookie。
  2. 确定什么样的角色没有你的访客。也许你会用一些特殊的表相对应的用户和网站。
  3. 确定主要用户的角色所列举的以及分配身份和主要当前的请求。

我也不认为作出特别的角色的每个网站是很好的想法。当你会有百网站,你还有两百角色。很无力,我害怕。

当我们解决类似的任务,我们只是不使用标准的控制。我们有单一的一套的角色中使用的所有网站。会员国的具体的用户是确定根据当前的网站和他的关系,这个网站。

此外:另一种可能性进行调查是的应用程序,存在ASP.NET 认证系统。也许它能够隔离的每个子网站进入的独立的应用程序?

更新: 方法工作为我们的应用程序。

  1. 不要做一个很大的克隆的角色。使用只有两个:用户和管理。如果你网站是公然后"用户"的作用可能是公正的全球用户在一个地点不同用户的另一个网站。如果"用户"和"大家"是不同的角色,当然"用户"也应该开个网站。

  2. 使用标准ASP.NET 成员资格的用户,但是没有使用标准的作用的机制。

  3. 使一个机制,用于储存关系网站和用户。这可能是简单的表格,拥有网站的标识、用户和作用。

  4. 你有什么要复盖IsInRole方法。(方法s 确切的说,我将涵盖其后)。这种方法是在IPrinciple接口,所以你必须要使自己的主要对象。这是很简单的。

    1. 方法IsInRole这种类型应该看采取目前的网站(从http请求)看起来进入该网站用户的表格,并获得角色
  5. 然后你必须将主要的要求。这样做在PostAuthenticateRequest事件。

  6. 还有RoleProvider.老实说我不确定当它是用,但它也有IsInRole方法。我们可以复盖相同的方式。但是其他的方法这一提供者是难。例如添加.它接受列用户的名字和角色,但是到什么方面(网站),它应该是加入?到目前?不知道,因为我不知道什么时候这种方法被称为。因此,它需要一些实验。我见(反射镜的帮助),RopePrincipal通过本身使用RoleProvider取列表中的角色,因此,也许它只实施RoleProvider,使用标准的主体。对于我们应用这不是一种情况,所以我不能说什么问题可能是隐藏在这里。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top