|
|
1
3
要认识到的基本问题是,您不能使用跨多个域的标准表单身份验证对用户进行身份验证。例如,dev.google.com和www.google.com是不同的域,如果用户登录dev.google.com,他不会自动登录www.google.com,除非google做了一些特殊的事情来启用它。这是因为浏览器无法访问其他网站的cookie。 真正使跨域登录工作的唯一方法是在网站检查并设置用户身份验证cookie的URL查询字符串中包含一个键值,比如会话ID。您可能可以使用一小段自己的自定义代码通过站点手动完成这项工作。 例子: http://www.example.com/autoLogin.aspx?sessionid=23232323 不过,这种方法的危险在于,有人可能会通过查找用户使用的地址并检查会话ID来欺骗用户会话。因此,您需要确保用于跨域验证用户的值具有时间敏感性和动态性。不要让它成为用户的用户ID、用户名或类似的东西。 现在,如果站点在同一个域中,您可以给它们所有相同的machinekey,那么当用户在同一个域中的不同站点中移动时,已经登录到一个站点的用户将不会被注销。 |
|
|
2
2
研究ASP.NET成员资格提供程序模型。 下面是一个链接到有关这方面的资料的小样本。它应该满足你的所有需要。最后两个链接指向SQL中的示例实现。您可以轻松地扩展字段以满足您的需要。
您的另一个选择是使用OpenID/Windows Live或类似工具实现登录。 |