2014-10-17 35 views
5

Ho un sito Web ASP.NET con la pagina di accesso che reindirizza alla pagina predefinita in caso di autenticazione riuscita. Ho un altro sito ASP.NET con un altro dominio, in cui devo inserire un modulo di accesso, che reindirizzerà l'utente già autenticato alla pagina predefinita del primo sito web. Qual è il modo migliore per fare questo?Accesso tra domini nel sito Web ASP.NET

Qualsiasi aiuto sarà apprezzato ..

+3

Non chiaro? Veramente? – ChrisBint

+0

Il problema di base è che non si dispone del token di autenticazione dell'altro dominio. Tuttavia, dovrebbe essere possibile eseguire una richiesta AJAX sul primo sito e restituire se l'utente ha effettuato l'accesso o meno (incluso l'URL di reindirizzamento, se necessario). Devi solo usare le intestazioni HTTP per dire al browser che questa è un'azione legale (valida accettazione-origine). – Luaan

+0

Se si ha accesso al codice su entrambi i siti Web, è possibile aggiungere token alla stringa di query che entrambi i siti possono comprendere e tradurre in informazioni utilizzate per autenticare automaticamente un utente. Un'altra opzione è quella di usare il proprio single sign on come suggerito da Joe qui sotto. –

risposta

0

Grazie per le vostre risposte. Penso che la mia domanda non sia stata abbastanza precisa.

Ho risolto il problema utilizzando iframe con la pagina di accesso delle prime applicazioni come origine.

<iframe id = "iframe1" name ="loginFrame" src="http://domain2/Login.aspx?for_web=true" onload="iframeLoaded" ></iframe> 

Per reindirizzare alla pagina di default loggati del primo sito, ha aggiunto OnClientClick = "formWeb.target = '_ parent';" a un pulsante di accesso. Quindi, quando si fa clic sul pulsante Login, in caso di autenticazione riuscita, la pagina predefinita (sotto un altro dominio) verrà aperta nella stessa finestra (non un frame)

<form id="formWeb" runat="server"> 
    <asp:Button ID="btnLogin" runat="server" Text="Login" OnClick="btnLogin_Click" OnClientClick="formWeb.target ='_parent';" /> 
</form> 
+1

Hai risposto alla tua domanda ma vale la pena menzionare i token web JSON, questi sono leggeri e sarebbero l'ideale in questo caso d'uso - http://jwt.io –

1

che cosa siete dopo è single sign on. La meccanica del reindirizzamento login succsesful sono nel web.config

Vedi qui http://msdn.microsoft.com/en-us/library/eb0zx8fc.aspx

<configuration> 
<system.web> 
<authentication mode="Forms" > 
    <!-- The name, protection, and path attributes must match 
     exactly in each Web.config file. --> 
    <forms loginUrl="login.aspx" 
    name=".ASPXFORMSAUTH" 
    protection="All" 
    path="/" 
    domain="contoso.com" 
    timeout="30" /> 
</authentication> 
<!-- Validation and decryption keys must exactly match and cannot 
    be set to "AutoGenerate". The validation and decryption 
    algorithms must also be the same. --> 
<machineKey 
    validationKey="[your key here]" 
    decryptionKey="[your key here]" 
    validation="SHA1" /> 

Vedi anche qui: Asp.net forms authentication and multiple domains