Попробуйте использовать FormAuthentication, установив раздел аутентификации web.config следующим образом:
<authentication mode="Forms">
<forms name=".ASPXAUTH" requireSSL="true"
protection="All"
enableCrossAppRedirects="true" />
</authentication>
Сгенерируйте машинный ключ. Пример: Самый простой способ создания MachineKey - Советы и рекомендации: ASP.NET, IIS ...
При публикации в другое приложение билет аутентификации передается как скрытое поле. При чтении поста из первого приложения второе приложение будет читать зашифрованный билет и аутентифицировать пользователя. Вот пример страницы, которая пропускает это поле:
.aspx:
<form id="form1" runat="server">
<div>
<p><asp:Button ID="btnTransfer" runat="server" Text="Go" PostBackUrl="http://otherapp/" /></p>
<input id="hdnStreetCred" runat="server" type="hidden" />
</div>
</form>
код-за:
protected void Page_Load(object sender, EventArgs e)
{
FormsIdentity cIdentity = Page.User.Identity as FormsIdentity;
if (cIdentity != null)
{
this.hdnStreetCred.ID = FormsAuthentication.FormsCookieName;
this.hdnStreetCred.Value = FormsAuthentication.Encrypt(((FormsIdentity)User.Identity).Ticket);
}
}
Также см. Раздел «Аутентификация в форме кросс-приложения» в главе 5 этой книги от Wrox. Он рекомендует ответы, подобные приведенным выше, в дополнение к предоставлению решения для единого дома.