3

Web アプリケーションでazure を使用Access Control System (ACS)して、さまざまな ID プロバイダーからのユーザーを認証しています。ACS を使用するようにアプリケーションを正常に登録しました。web.config ファイルから次のコンテンツを削除して、ACS を使用した完全な Web サイト セキュリティを削除しました。

<authorization>
  <deny users="?" />
</authorization>

これを削除すると、ユーザーはログインせずに私のウェブサイトのホームページにアクセスできます。今、私のホームページにリンクを設定しましたSignInユーザがサインイン リンクをクリックしたときに、ユーザを ACS のデフォルト ログイン ページにリダイレクトする方法を教えてください。(同様に、ユーザーが認証されておらず、Authorize 属性で装飾されたコントローラーにアクセスしようとした場合に、asp.net アプリケーションがユーザーを ACS ログイン ページにリダイレクトする場合)

4

4 に答える 4

1

SignInRequestMessage クラスを使用して URL を手動で作成するか、

FederatedAuthentication.WSFederationAuthenticationModule.RedirectToIdentityProvider() (IIRC)。

于 2013-01-25T13:58:35.750 に答える
0

また、WIF には、そのサインイン リンクを表示するコントロールが含まれていると思います。

于 2013-01-25T14:45:50.647 に答える
0

これが私のMVCアプリでの方法です。

web.cofig で次の宣言を使用して、保護されていないすべてのページへのユーザー アクセスを許可します。

<location path="FederationMetadata">
<system.web>
  <authorization>
    <allow users="*" />
  </authorization>
</system.web>

Logon メソッドで RequireHttps 属性を使用します。

[HttpGet]
[RequireHttps]
public ActionResult LogOn(string returnUrl)
{
     if (string.IsNullOrWhiteSpace(returnUrl))
       returnUrl = "/reports";

     return LogOnCommon(returnUrl);
}

私のログインページがあるweb.configの認証セクションを使用します:

<system.web>
  <authentication mode="Forms">
    <forms loginUrl="~/account/logon" timeout="2880" />
  </authentication>
</system.web>
于 2013-01-25T22:33:54.013 に答える