自动登录多个Web应用程序

时间:2013-08-11 07:47:42

标签: security web-applications single-sign-on

我有一个Web应用程序,其中有多个其他Web应用程序。要使用它们,用户需要输入用户名密码进行身份验证。我希望一旦用户登录我的应用程序,它就会自动登录到其他应用程序中。

我不想为每个应用程序保留相同的用户名和密码,但这将是我最后的选择。

我可以要求用户第一次进行身份验证,之后我的应用程序应该可以执行此操作。

我在这种情况下有哪些可行的方法/选项。

我的应用程序在客户端使用javascript。

由于

1 个答案:

答案 0 :(得分:0)

您希望创建类似StackExchange身份验证系统的内容。您可以使用cookies将数据保存在其中。例如,您可以创建大约3天的登录cookie。这意味着您的用户可以登录约3天。 Cookie不安全(特别是用于存储密码等重要数据)。要保护cookie,您可以哈希数据。但即使这样做,用户也可以从浏览器中删除cookie;或者,如果用户在退出时清除其浏览器历史记录,则会删除Cookie。


此处网站包含用于创建Cookie的代码:

HttpCookie loginCookie = new HttpCookie("LoginCookie");

之后你可以设置cookie到期(生命时间):

loginCookie.Expires = DateTime.Now.AddDays(3);

您可以在其中插入数据:

loginCookie.Values.Add("password", "Hashed value of password here");

对于退出:创建按钮并在Cl​​ick事件中设置此代码:

 Response.Cookies["LoginCookie"].Expires = DateTime.Now.AddDays(-1);

使用会话更好。他们更安全。如何创建会话:

 Session["Password"] = "Hashed value of password here";

退出按钮(删除所有会话)中:

Session.Abandon();

删除特定会话:

Session.Remove("Password");