2014-12-04 124 views
1

我試圖使用相同的登錄表單url驗證兩個應用程序,所有的應用程序都在同一個域中,但在不同的Web服務器。所以,如果我把所有的應用程序放在同一個網絡服務器上,那麼完美的工作,但是在不同的服務器上是行不通的。我已經配置了需要認證的兩個應用程序的Web配置,這裏是我的代碼。我無法使用通用登錄身份驗證身份驗證

兩個應用程序在web.config文件相同

<forms enableCrossAppRedirects="true" cookieless="UseCookies" loginUrl="http://localhost:90/" /> 
<machineKey validationKey="[value]" decryptionKey="[value]" validation="SHA1"/> 

我登錄網站控制器代碼:

[HttpPost] 
public void Index(string userName, string password) 
{ 
    var cookie = FormsAuthentication.GetAuthCookie(userName, false); 
    var url = Request.QueryString["ReturnUrl"]; 

    //Here I will check the user credentials 
    if (userName == "usernameX" && password == "passwordX") 
    { 
     Response.Redirect(String.Format("{0}?{1}={2}", 
     Request.QueryString["ReturnUrl"], 
     FormsAuthentication.FormsCookieName, 
     cookie.Value)); 
    } 
} 
+0

難道這是原因嗎? ** loginUrl =「http:// localhost:90/**在您的web.config? – Chris 2014-12-04 17:57:56

+0

這只是我的登錄頁面的網址 – willver 2014-12-04 18:30:50

回答

1

嗯,我找到了答案。我需要將機器密鑰和驗證密鑰放入登錄頁面應用程序中,在我的情況下,它是另一個應用程序,其功能類似於所有應用程序的常見裏脊頁面。並且必須指定您要共享cookie的域。

<forms enableCrossAppRedirects="true" cookieless="UseCookies" loginUrl="http://localhost:90/" domain="mydomain.com"/>