ASP.NET中的网站用户创建

时间:2015-07-24 11:43:55

标签: c# asp.net security single-sign-on

我在一台服务器上托管了一个主网站,在另一台服务器上托管了另一个辅助网站,即主网站的子网域。我已跨网站实施了SSO,以便当用户登录主网站时,他也会自动登录到辅助网站;这仅在用户作为两个网站上的帐户存在时才有效(它们是不同的系统,但两个ASP.NET网站都使用表单身份验证)。

我需要更改主网站上的身份验证例程,以便调用辅助网站,并传递用户名。如果用户不在辅助网站上,则使用用户名创建其帐户。请注意,辅助站点上不需要密码,因为用户只能通过主站点登录。

我的问题是:实现上述目标的最佳途径是什么?

我不认为我可以简单地加密主网站上的用户名并将其发送过来,在辅助网站上解密(两个网站都有相同的机器密钥),因为它可能很容易被欺骗和欺骗#34;所以可能必须有一些传递令牌的方法,辅助网站可以使用该令牌来验证请求来自主网站。有什么方法可以使用cookie来存储用户名的加密版本吗?如果是这样,我怎么能这样做,这是一个比具有适当的查询字符串参数的URL更好的方法。

这一定是一个相当常见的情况,但我无法找到关于如何做我需要做的任何权威指南(最佳实践) - 任何建议都会非常受欢迎。

我现在的任务是通过Web服务提供用户创建。这意味着它应该更容易一些,因为我不必将用户重定向到我网站上的页面;相反,我只需要为创建用户提供服务请求。

为了保护要创建的用户的详细信息,我想我只需要使用HTTPS,但根据我之前的说法,我想我也可以使用machinekey加密。那么我的下一个问题是,我的客户应该如何将参数传递给我的网络服务?我应该只使用加密参数还是应该在请求标头中嵌入参数?

1 个答案:

答案 0 :(得分:0)

使用Draft中描述的Oauth协议
这是Dotnet的实现 Oauth dotnet library

相关问题