2

私は VS 2012 MVC4 (カミソリ) サンプル (ほぼすべての新機能) を使用しており、Google と Yahoo の両方の OpenID アクセスを許可するように AuthConfig.cs ファイルを変更しました。

        OAuthWebSecurity.RegisterGoogleClient();
        OAuthWebSecurity.RegisterYahooClient();

案の定、これら 2 つの OpenID オプションが表示されます。ボタンに適切なロゴが表示されるように、これを変更したいと思います。

DotNetOpenAuth には画像パスを返す方法がありますか? そうであれば、ExternalLoginの「ページ」を変更できると考えていました。

@foreach (AuthenticationClientData p in Model)
{
        <button type="submit" name="provider" value="@p.AuthenticationClient.ProviderName"  title="Log in using your @p.DisplayName account"><img src="" />@p.DisplayName </button>            
}
4

3 に答える 3

2

次のように実行できます (vb.net コードで申し訳ありません)。

AuthConfig RegisterAuth メソッドで辞書を作成し、アイコン パスを目的の画像に追加します。

Dim MsExtraData As New Dictionary(Of String, Object)
MsExtraData.Add("Icon", VirtualPathUtility.ToAbsolute("~/Images/Microsoft.png"))

' Then pass it as extraData parameter to the register client method
OAuthWebSecurity.RegisterMicrosoftClient(
        clientId:="yourkey",
        clientSecret:="yoursecret",
        displayName:="Microsoft",
        extraData:=MsExtraData)

Views\Account フォルダーの _ExternalLoginsListPartial を表示し、ボタン生成コードを次のように変更します。

<button type="submit" id="<%: p.DisplayName%>" name="provider" value="<%: p.AuthenticationClient.ProviderName%>" title="Login with <%: p.DisplayName %>"><%: p.DisplayName%>
            <img src="<%: p.ExtraData("Icon")%>" alt="Icon for <%: p.DisplayName%>" />
        </button>
于 2013-01-13T06:16:57.620 に答える
0

いいですね。Twitter と Facebook の署名には、displayName という追加のフィールドが必要です。

于 2013-03-13T18:26:40.540 に答える
-1

font-awsome を使用して、次のように _ExternalLoginsListPartials ビューでそのタスクを実行しました。

        using (Html.BeginForm(Model.Action, "Account", new { ReturnUrl = Model.ReturnUrl }))
        {
            @Html.AntiForgeryToken()
            <div id="socialLoginList">
                <p>
                @foreach (AuthenticationDescription p in loginProviders)
                {
                    <button type="submit" class="btn btn-default" id="@p.AuthenticationType" name="provider" value="@p.AuthenticationType" title="Log in using your @p.Caption account"><span class="fa fa-@p.Caption.ToLower()">&nbsp;&nbsp;</span>@p.AuthenticationType</button>
                }
                </p>
            </div>
        }

それはもちろん、Font-Awsome を使用している場合ですが、他のグリフィコンでも機能すると思います。また、これは MVC5 と VS2013 ですが、html、css、および Razor のみを使用しているため、以前の MVC バージョンにも適用できると思います。

それが役立つことを願っています!

于 2014-10-09T19:45:55.540 に答える