0
我有一个WinForms应用程序,它连接到一个网站。在Windows应用程序中,用户可以通过SOAP web服务(每个Web服务调用通过HTTPS发送用户名/密码)登录其网站帐户。我被要求创建一个按钮,将它们登录到浏览器的网站中,因此如果他们需要同时使用Windows应用程序和网站,则不必登录两次。如何将用户从Windows应用程序登录到asp.net网站(通过API)?
Windows应用程序中的按钮是否安全?通过在URL中对用户名和密码进行编码,使用户可以一键式访问该网站?在使用HTTPS时,我不确定URL本身是否已加密,或者只有请求/响应流量。对用户进行非对称加密/传入某种登录令牌会更好吗?如果是这样,我怎么能阻止别人简单地使用同一个标记?
我不太确定谷歌如何才能在这个问题上得到答案,而且随着改变API的使用相对困难一旦使用,我宁愿在第一时间做一些明智的事情。
使用令牌而不是使用用户名和密码作为令牌的优点是什么?我意识到令牌的使用是相当普遍的,但我从来没有真正理解它背后的推理:) – NickG
随机令牌不可能让任何人猜测可以工作的令牌,特别是在令牌的超时时间内。 (您应该每次都生成一个新的令牌)。使用加密的用户名+密码“令牌”,任何人都可以使用它。使用不应该发生的HTTPS,但有可能发生配置错误,我宁愿在解决方案级别拥有安全机制。此外,理想情况下,您的系统不应该知道用户的密码。它应该存储为散列,并且仅用于验证用户以后输入的内容。令牌给你一个内部机制。 –
系统使用散列密码,但只发送散列将允许任何人知道只有散列,这比要求他们知道密码更安全。所以大概你只是想使用哈希存储,而不是任何形式的认证? – NickG