【发布时间】:2010-12-02 08:07:09
【问题描述】:
我们希望能够与新用户或其他用户共享 Web 应用程序内的资源。我们想通过实现一个邀请码来做到这一点。我之前已经在其他应用程序(例如 google 文档)中多次看到此实现,您将邀请码发送给另一个用户,而另一个用户将拥有第一个用户同意的任何访问权限。
我确信一定有一个模式,或者最好的方法已经记录在某个地方,我只需要正确的词来寻找它。有人能指出我正确的方向吗?下面是用例:
- 用户一 (user1) 有一个包含多个空格的帐户。
- User1 想与 User2 共享一个特定的空间 (space9)(在或不在用户表上)。
- 用户1向用户2的邮箱发送邀请码。
- User2注册并输入邀请码或点击链接使用邀请码注册。
- User2 可以访问 space9 并且只能访问 space9,不能访问 user1 的任何其他空间寄存器。
编辑 1:(根据标记答案使用的可能算法):
在我的域模型中,我有用户和帐户,每个用户都有 0 个或多个帐户。然后我们还有 SharedSpace,每个用户有 0 个或多个共享空间,每个帐户可能有 0 个或多个共享空间。现在 Sharespace 将包含 (inviationCode, spaceCode, active (yes), expiration, email (share with)。
任何拥有帐户 (acct1) 的用户都可以与
共享空间acct1.shareSpace("spaceCodeToShare","Emailofusertosharewith");
shareSpace(string,string) 方法将执行以下操作:
- 创建邀请码并将其发送到电子邮件
- 如果用户已注册,他会通过单击或输入来激活其代码(使用 authorize 或 customAuthorize 属性和 IPrincipal 来防止未经授权的访问)。
- 如果用户未注册,则他登录并在为该用户创建用户条目后激活代码。
- 如果用户从未激活代码,则代码将过期并且活动状态切换为 false。
你认为我遗漏了什么吗,它看起来比我想象的要简单?
【问题讨论】:
标签: c# asp.net asp.net-mvc algorithm