2011-04-06 34 views
0

我希望在ASP.NET MVC应用程序中保护单个(动态)页面。ASP.NET MVC页面上的简单密码保护

我不想使用全面的身份验证系统 - 我们已经在为网站的管理员使用表单身份验证。相反,这是为了让我们可以向特定用户发送带有密码的页面链接。

我目前处理的方式是在提交有效密码时,我们创建一个加密的cookie,其中包含页面标识(Guid)及其会话标识并将其重定向到页面。在我们的“页面”控制器操作中,我们然后验证这个cookie。

所以第一个问题,这是最好的(最安全的)方法(除了使用表单身份验证)?

第二个问题,我可以读取Forms Authentication用来执行加密的机器密钥,或者更好地使用FormsAuthentication来加密cookie(我可以看到的唯一的重载是需要FormsAuthenticationTicket的机器密钥)?

因为我们总是在部署之前生成一个新的机器密钥,所以我们所有的加密使用相同的密钥会更好。

[更新]

关于如何访问本机键,我发现我的答案在http://rich-rogers.com/archive/asp.net-c-sharp-encrypt-hash-using-machinekey-values

[更新2]

问这个问题后,我意识到,因为我需要保持他们有权访问的页面列表,我可能会更好,只是将它们存储在当前会话中。我可以存储具有失效日期的安全令牌列表。由于我已经有了一个包装会话,所以这应该很容易进行单元测试。

回答