2010-05-09 18 views
8

ASP.NET MVC kullanarak bir etki alanları arası tek oturum açma çözümü oluşturmaya çalışıyoruz.Tek Oturum Açma ASP.NET MVC

Mevcut tüm çözümler veya öğreticiler var mı? Eğer web uygulamaları aynı sunucu ve aynı etki iseniz

+1

sunucuları birbirine veya aynı DB bu konuda konuşabilir miyiz, etki alanı bölümü kaybetmiş böylece çözüm oldukça basit ise –

+0

hey -.. evet www.example.com - DB ile tek bir web sitesidir, DB tüm oturumlarda yaygındır, bu yüzden temelde sadece "uzak" web sitesi www.example.com vb. – Mike

cevap

10

o zaman yapmanız gereken validationKey ve şifreleme anahtarı web config (machinekey) aynı olmasını sağlamak olduğunu. Örnekte

örneğin, diğer etki alanına geri taşımak için, sorgu dizesine kimlik doğrulama bilet eklemek gerekir: Eğer çerezsiz form kimlik etkinleştirmek zorunda yerel başvurusu üzerine

public void Login(string userName, string password) 
{ 
    if(AuthenticateUser(userName,password)) 
    { 
     Response.Redirect(String.format("{0}?{1}={2}"), 
      Request.QueryString["ReturnUrl"], 
      FormsAuthentication.FormsCookieName, 
      FormsAuthentication.GetAuthCookie(userName, false).Value)); 
    } 
} 

ve enableCrossAppRedirect'i ayarlayarak kimliği doğrulanmış kullanıcıların harici uygulamalardan gelmesine izin verin.

<authentication mode="Forms"> 
    <forms enableCrossAppRedirect="true" cookieless="useUri" /> 
</authentication> 

Notlar:

  1. Ayrıca bkz FormsAuthentication.RedirectFromLoginPage - http://msdn.microsoft.com/en-us/library/ka5ffkce.aspx. Benim durumumda

  2. ReturnUrl url :(

İlgili konular