C# 使用Guid进行单点登录

C# 使用Guid进行单点登录,c#,asp.net,guid,single-sign-on,C#,Asp.net,Guid,Single Sign On,如何使用Guid在同一域上实现单点登录?我无法使用会话,因为不同的web应用程序将在新窗口中打开,因此会丢失会话 使用的技术:ASP.net 3.5、MVC2体系结构、C#。您应该能够使用cookie并从同一域下运行的任何应用程序访问它。如果其他web应用程序位于子域上,则需要设置cookie的域,如下所示: Response.Cookies("CookieName").Domain = ".mydomain.com" 如果网站存在于Intranet中,并且所有用户都使用唯一的用户帐户登录到

如何使用Guid在同一域上实现单点登录?我无法使用会话,因为不同的web应用程序将在新窗口中打开,因此会丢失会话


使用的技术:ASP.net 3.5、MVC2体系结构、C#。

您应该能够使用cookie并从同一域下运行的任何应用程序访问它。如果其他web应用程序位于子域上,则需要设置cookie的
,如下所示:

Response.Cookies("CookieName").Domain = ".mydomain.com" 
如果网站存在于Intranet中,并且所有用户都使用唯一的用户帐户登录到Windows,则可以启用Windows身份验证并从其web请求中读取其Windows用户名以确定用户

编辑以详细说明: 让每个站点阅读cookie。您可以根据cookie的存在来确定用户是否登录,这可以通过设置cookie过期时间来管理

如果您想使其更复杂(仅依赖cookie可能存在安全问题),可以将GUID存储在数据库中,并让每个页面进行查找,以确保它们传递的GUID有效。从这里开始,如何管理在数据库中验证的GUID取决于您(比较时间戳等)


您可能希望在Cookie中存储其他信息以用于验证。例如,您可以生成一个随机字符串,并将其与GUID一起存储在数据库中。对该字符串执行单向加密,并在最初保存时将其存储在Cookie中。这样,您可以在检查cookie是否有效时比较该值。

它必须是GUID吗?或者您只是需要Active Directory来验证/传递用户凭据到您的ASP.NET网站吗?我希望它是一个guid,因为我计划使用该值和用户ID来验证用户。请参阅:谢谢大家。我使用system.guid为每个登录的用户生成一个guid值,并将其保存到数据库中。这是我用于执行signle登录的登录用户的唯一标识符。我正在尝试创建一个单一的登录Web应用程序,该应用程序将允许使用其自己的数据库访问不同的网站。我该怎么做呢。