发布
社区首页 >问答首页 >桌面应用程序的身份验证

桌面应用程序的身份验证
EN

Stack Overflow用户
提问于 2012-08-17 19:37:25
回答 2查看 1.9K关注 0票数 2

首先,我看了她关于这个问题的每一个相关话题。然而,他们中没有一个人能够完全回答我的问题。

目前,我正在开发一个桌面应用程序,用C#/wpf编写,它需要MySQL连接来进行身份验证和存储用户自定义列表等。

然而,问题是,显然,允许每个人远程连接到MySQL数据库并不是一个好的做法。此外,我当前的主机需要将IP列入白名单,然后才能连接到数据库。

我在这方面有什么选择?

提前谢谢你

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-17 19:45:50

您应该考虑创建web服务(SOAP)、http web-api (REST)或其他一些中间件来抽象您的数据存储。

这样做的好处是:

sql允许您将大部分业务逻辑从桌面应用程序转移到中间件中。

  • 允许您将业务逻辑排除在

之外,这可能是一个bottleneck

  • Allows,您可以在不重新分发桌面应用程序的情况下更新您的业务逻辑(如果您不能直接控制您控制身份验证的所有desktops).
  • Allowing,则会更容易(许多服务器都有自己的模块,身份验证方法)。您的应用程序将在其自己的服务account.
    • Allows下控制访问和访问存储,以便完全更改您的数据存储(假设将来您将一些存储在sql中,一些存储在mongodb中,一些存储在云存储中-再一次,无需更新所有desktops.
    • Allows您就可以扩展前端,甚至可能扩展您的后端存储(例如,读/写DB副本)

如果你已经在使用C#,那么新的MVC4 web-api应该是一个很好的选择。点击此处阅读更多信息:

http://www.asp.net/web-api

如果采用该方法,则可以控制服务中的访问,并使服务通过连接字符串中的凭据访问数据库,或者,如果使用IIS,则使用映射到站点的应用程序池上的凭据。

如果你正在交付你的桌面应用程序(你没有托管数据库),那么如果你的客户不想安装/管理IIS,你也可以在它自己的exe中自行托管web-api。

最后,如果您的mysql是在线的,那么您的中间件可能在云中(azure等)。

票数 4
EN

Stack Overflow用户

发布于 2012-08-17 19:56:41

创建web服务,例如使用WCF或MVC Web API,您的应用程序可以在其中传递其凭据并进行身份验证。我推荐使用https作为传输安全性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12005027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档