我在这里看到了类似的问题,但没有一个真正解决了我的情况,这里是设置:
我有一个带有Forms Authentication(SqlMembershipProvider)的ASP.NET应用程序,用户可以在其中提交审核结果。
我想创建一个轻量级的桌面应用程序(让我们称之为 MyApp )(使用离线),以便用户可以在没有互联网连接时提交审核结果。
以下是MUST-HAVES:
一旦我弄清楚以上3件事情 - 其余的很容易。
如果上述情况令人困惑,这是一个简单的场景:
我已经研究过Microsoft Sync框架,但这对我正在做的事情来说似乎有些过分(而且我不确定它是否可以容纳我的MUST-HAVES)。
我愿意接受任何替代方法,只要他们能够解释我的必须。
感谢您的帮助。
答案 0 :(得分:0)
这里隐藏着一个棘手的问题。多个用户在同一台笔记本电脑上输入报告的用例表明,用户必须在输入审核报告之前进行身份验证,而不是在重新连接应用程序后提交审核报告时进行身份验证。 / p>
身份验证应该告诉用户他们输入的凭据是否正确,因此您需要将用户凭据数据库与笔记本电脑同步。这是一个重大的安全风险,需要非常小心地完成,即使用户数据库已加密并使用散列的盐渍密码。您可能只希望同步一部分用户记录,例如那些将使用该应用程序的记录。
因此,假设您这样做 - 然后您可以使用在ASP.NET应用程序上使用的相同身份验证提供程序来对用户进行身份验证,并在应用程序连接时重新同步该数据库。您不需要存储除数据库之外的凭据,正如我所提到的那样,应该使用Windows data protection API或类似强大的东西加密。
如果您可以通过允许用户只需输入用户名,在重新连接时上传(但不提交)报告并允许用户将报告与其帐户相关联来满足要求,则可以简化所有这些操作。用户通过网站连接并在验证正常方式后确认上传的报告。