我正在为客户端编写Web应用程序。用户将拥有一次性密钥,他们将使用该密钥初始向应用程序标识自己。一旦应用程序验证密钥是否有效,它将把它们带到一个页面,在那里他们可以创建一个普通账户用于所有后续登录。创建账户页面只能在输入密钥后才能访问,否则不能访问。即,用普通账户登录的用户不应该访问它。 这是使用自定义成员资格提供程序的asp.net 3.0。如何在ASP.Net应用程序中设置委托人
我的计划是创建一个基于密钥的临时账号与身份验证与该帐户的用户。这使他们能够访问创建用户页面(该页面受到位置标记的保护),从而可以在其中创建正式帐户。然后我用他们的新帐户验证它们并删除临时帐户。 流程是:用户进入一个他们输入密钥的页面。如果密钥有效,我创建临时帐户,调用FormsAuthentication.SetAuthCookie,并重定向到创建帐户页面。尽管看起来有点复杂,但这一切都有效。
的问题是创建用户页面可用于任何身份验证的用户;我只希望它在进入密钥和创建正式账户之间的时间内可用。所以我想我会为临时帐户创建一个特殊角色,并使创建用户页面只能访问该角色,而不能访问其他用户。我使用特殊角色创建了自己的Principal对象,并尝试在验证临时帐户时设置它,但无法使其工作。
我真的希望我没有编写自定义的角色提供只是做到这一点。
我该如何做这项工作?有一个更简单的方法!