次のように web.config 認証セクションを設定して、FormAuthentication を使用してみてください。
<authentication mode="Forms">
<forms name=".ASPXAUTH" requireSSL="true"
protection="All"
enableCrossAppRedirects="true" />
</authentication>
マシン キーを生成します。例: MachineKey を生成する最も簡単な方法 – ヒントとコツ: ASP.NET、IIS ...
他のアプリケーションに投稿するとき、認証チケットは隠しフィールドとして渡されます。最初のアプリから投稿を読み取るときに、2 番目のアプリは暗号化されたチケットを読み取り、ユーザーを認証します。フィールドを投稿することを渡すページの例を次に示します。
.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);
}
}
また、Wroxのこの本の第 5 章にあるクロスアプリ フォーム認証のセクションも参照してください。自作のSSOソリューションを提供することに加えて、上記のような回答を推奨しています.