ユーザーは、自分のGoogleアカウント、Facebookアカウント、およびWindows LiveアカウントでASP.NET MVC Webサイトにサインインできるようにしようとしています。私は現在Azure App Fabric ACSを使用していますが、これはほとんど簡単です。キャッチは電子メールアドレスが必要です。 GoogleとFacebookは電子メールを主張として提供しているが、Windows Liveは主張していない。 LiveConnectサイトからは、wl.basic(ユーザーの名前を取得する)とwl.emails(ユーザーの電子メールアドレスを取得する)スコープを使用すると簡単に可能ですが、ACSに順番に影響を与えることはできませんでしたこの情報を得る。私はまた、ユーザーがサインインした後、私のサイトからOAuth2 Webサーバーのフローを実装しようと試みました。私は必要な情報を得ることができましたが、FedAuthのCookieが削除されたので、サインオンの無限ループに固執しました。フローを開始するためにhttps://oauth.live.com/authorizeにリダイレクトされました。誰かがこれを(サーバー側で)動作させることができましたか? ACSをすべて破棄し、カスタムページに各プロバイダのカスタムコードを使用してサインインできるようにする必要がありますか?Windows Live with Azureアクセスコントロールサービス
以前のデモ(ブログエンジンala smarx)をコードで改造して、私が独自のものを公開する必要がないようにしました。私のweb.configファイルでFedUtilは、次のように挿入しています
<httpModules>
<add name="WSFederationAuthenticationModule" type="Microsoft.IdentityModel.Web.WSFederationAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add name="SessionAuthenticationModule" type="Microsoft.IdentityModel.Web.SessionAuthenticationModule, Microsoft.IdentityModel, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</httpModules>
私は、すべてのユーザー
拒否削除をしかし、私は
を許可するユーザーを強制的に特定のアクションメソッド(新しいブログの記事を)持っています[Authorize]
public ActionResult New()
{
var principal = Thread.CurrentPrincipal as IClaimsPrincipal;
if (principal == null)
return new HttpStatusCodeResult(403);
// if this is a Windows Live User we have more work to do
string redirectUrl = CheckForWindowsLiveUser(principal);
if (redirectUrl != null)
{
return Redirect(redirectUrl);
}
クッキー(FedAuthとFedAuth1)が初めて入力されたときに、新しいリクエストの内部にリダイレクトが戻った後、それらは消えています。私はセッションプロバイダに何もしていない(多分私はすべきである)。
正しいです。上記の投稿を編集して、私がやっていることのより具体的な説明を追加しました。 – sreed
うーん、私は参照してください。私は、これが正確にいつクッキーが書き込まれているのか、それが消えているのを見るために、このバイリンガルのトレース(fiddler2.com)を見るのを助けると思う。 –
これを解決できましたか、私はちょうど同じ問題にぶつかりました。 – RubbleFord