Мы пытаемся создать междоменное решение единой точки входа с помощью ASP.NET MVC.
Какие-либо существующие решения или доступные учебные руководства?
Если ваши веб-приложения находятся на одном сервере и одном домене , то все, что вам нужно сделать, это застраховать что ключ проверки и ключ шифрования совпадают в веб-конфигурации (machineKey).
В вашем примере вам нужно будет добавить билет аутентификации к строке запроса, чтобы передать его обратно в другой домен, например:
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));
}
}
В локальном приложении вы должны включить аутентификацию форм без файлов cookie и разрешить аутентифицированным пользователям приходить из внешних приложений, установив enableCrossAppRedirect.
<authentication mode="Forms">
<forms enableCrossAppRedirect="true" cookieless="useUri" />
</authentication>
Примечания:
См. Также FormsAuthentication.RedirectFromLoginPage - http://msdn.microsoft.com/en-us/library/ka5ffkce.aspx .
В моем случае ReturnUrl потерял часть URL-адреса домена: (