C# 从客户端应用程序自动安全地进行Web登录

C# 从客户端应用程序自动安全地进行Web登录,c#,.net,security,asp.net-mvc-2,C#,.net,Security,Asp.net Mvc 2,我们在每台用户计算机上运行一个客户端应用程序,该应用程序具有到相关web应用程序的链接 最近的一项要求是,如果用户登录到客户端应用程序,则他们应该能够单击链接并自动登录到web应用程序 我们的web应用程序使用SSL加密。我们的客户端应用程序使用Silverlight 有没有办法安全地实现这一点 我们第一个天真的想法是简单地将用户名和密码嵌入到站点的url中,但显然这是不安全的,因为它在历史记录中可见,并且可以通过“后退”按钮查看 尝试二涉及简单地将密码段转换为Base64以使其不可见,并信任S

我们在每台用户计算机上运行一个客户端应用程序,该应用程序具有到相关web应用程序的链接

最近的一项要求是,如果用户登录到客户端应用程序,则他们应该能够单击链接并自动登录到web应用程序

我们的web应用程序使用SSL加密。我们的客户端应用程序使用Silverlight

有没有办法安全地实现这一点

我们第一个天真的想法是简单地将用户名和密码嵌入到站点的url中,但显然这是不安全的,因为它在历史记录中可见,并且可以通过“后退”按钮查看

尝试二涉及简单地将密码段转换为Base64以使其不可见,并信任SSL对其进行加密

我还是不开心。理想情况下,我们希望使用某种基于时间的令牌,该令牌在使用后几分钟内到期

我们从哪里开始


如果这变得过于复杂(特殊硬件)或需要用户执行除单击链接按钮以外的任何操作,则该功能将被删除。

也许您可以从客户端应用程序向web应用程序发出经过身份验证的web服务调用,以在用户单击链接时获取令牌,然后将令牌附加到查询字符串?然后用户使用令牌登录到web应用程序,然后立即失效(仅限一次性使用)。

用户是在启动客户端应用程序时显式登录,还是在使用Windows身份验证?这是显式登录,但仅一次。客户端会记住用户的凭据。这需要您在客户端应用程序中截获链接单击,检索令牌,然后构建在浏览器中打开的实际URL。谢谢,这很好,我听过之后就很明显了。