Usuário com melhor resposta
Duvida com Single Sign-On

Pergunta
-
Bom dia,
preciso desenvolver um esquema de SSO (Single Sign-On) na empresa e gostaria de saber como que eu poderia desenvolver um.
Durante as minhas pesquisas eu vi um jeito fazer utilizando WebServices mas não consegui entender como que é feita a comunicação entre eles, será que alguem poderia ajudar?
Respostas
-
Não sei se estou sendo simplista demais com relação à sua pergunta, mas eu já fiz algo do tipo usando cookie.
Em um Form1.aspx, por exemplo:
//Cookies
HttpCookie cookie = new HttpCookie("myCookie");
cookie.Values.Add("nome", txtNome.Text.Trim());
cookie.Values.Add("email", txtEmail.Text.Trim());
DateTime now = DateTime.Now;
//Cookie expirará em 1 hora
cookie.Expires = now.AddHours(1);
Response.Cookies.Add(cookie);
//Redirecionando
Response.Redirect("Form2.aspx");E no Form2.aspx:
//Cookies
HttpCookie cookies = Request.Cookies["myCookie"];
txtNome.Text = cookies.Values["nome"];
txtEmail.Text = cookies.Values["email"];Desta forma você poderia criar apenas 1 cookie no navegador do usuário e o mesmo seria compartilhado por N aplicações e teria um tempo de expiração. Mesmo sites como Gmail e Orkut compartilham login desta forma. Você se loga em um site e o outro já identifica automaticamente o login. Apesar de seus prós e contras, esta é uma solução simples e rápida.
Espero ter ajudado,
Abs
Rodolfo Paoni
- Marcado como Resposta JuniorFrenzel quarta-feira, 6 de julho de 2011 19:07
Todas as Respostas
-
Não sei se estou sendo simplista demais com relação à sua pergunta, mas eu já fiz algo do tipo usando cookie.
Em um Form1.aspx, por exemplo:
//Cookies
HttpCookie cookie = new HttpCookie("myCookie");
cookie.Values.Add("nome", txtNome.Text.Trim());
cookie.Values.Add("email", txtEmail.Text.Trim());
DateTime now = DateTime.Now;
//Cookie expirará em 1 hora
cookie.Expires = now.AddHours(1);
Response.Cookies.Add(cookie);
//Redirecionando
Response.Redirect("Form2.aspx");E no Form2.aspx:
//Cookies
HttpCookie cookies = Request.Cookies["myCookie"];
txtNome.Text = cookies.Values["nome"];
txtEmail.Text = cookies.Values["email"];Desta forma você poderia criar apenas 1 cookie no navegador do usuário e o mesmo seria compartilhado por N aplicações e teria um tempo de expiração. Mesmo sites como Gmail e Orkut compartilham login desta forma. Você se loga em um site e o outro já identifica automaticamente o login. Apesar de seus prós e contras, esta é uma solução simples e rápida.
Espero ter ajudado,
Abs
Rodolfo Paoni
- Marcado como Resposta JuniorFrenzel quarta-feira, 6 de julho de 2011 19:07
-