在 asp.net 核心 MVC 中更改 Facebook 身份验证按钮的布局
Change layout of Facebook authentication button in asp.net Core MVC
作为一个学期的项目,我和朋友们正在 ASP.NET 核心 MVC 中开发一个规划应用程序。我们启用了 Facebook 登录,但按钮相当简单,我希望能够更改注册到 facebook 按钮的布局。
我们最近从 ASP.NET Framework 更改为 Core,在 Framework 中,我可以在名为 _ExternalLoginListPartial.cshtml 的文件中更改它。我查看了所有文件夹,但找不到与该文件具有相同内容的相同或任何其他相关文件。
我在Framework中的做法是这样的
@foreach (AuthenticationDescription p in loginProviders)
{
switch (@p.AuthenticationType)
{
case "Facebook":
<button type="submit" class="btn btn-default facebookButton" id="@p.AuthenticationType" name="provider" value="@p.AuthenticationType" title="Log in using your @p.Caption account">@p.AuthenticationType</button>
break;
.
.
..and so for other types..
}
}
编辑
@Chris Pratt 给出了很好的解决方案:
在脚手架项目列表的 Login.cshtml 中,我进行了以下更改:
@foreach (var provider in Model.ExternalLogins)
{
switch (@provider.DisplayName)
{
case "Facebook":
<button type="submit" class="btn btn-default facebookButton" name="provider" value="@provider.Name" title="Log in using your @provider.DisplayName account">@provider.DisplayName</button>
break;
}
}
身份现在带有默认 UI。它是一个由 Razor 页面和嵌入式静态文件组成的 Razor Class 库,通过调用 AddDefaultIdentity
(内部调用 AddDefaultUI
)包含在内。因此,您的项目中没有任何物理存在,即使一切都像直接在您的项目中一样运行。
如果您想自定义此 UI,您可以将其关闭(改为使用 AddIdentity
)并构建您喜欢的任何内容,或者(更有可能)您只想在要自定义的 Razor 页面中搭建脚手架。您项目中的任何实际内容都将有效地覆盖来自默认 UI.
的任何内容
在解决方案资源管理器中右键单击您的项目,然后选择“添加”>“新建脚手架项”。那里有一个用于标识的选项卡,带有一个脚手架。当您选择此项时,您将看到一个列表,其中列出了可以在其中搭建脚手架的各种 Razor 页面。Select 一个或多个您想要自定义的页面(如果您愿意,也可以只包含所有内容)。
对于此特定更改,您可以在 Login.cshtml
中找到代码。
作为一个学期的项目,我和朋友们正在 ASP.NET 核心 MVC 中开发一个规划应用程序。我们启用了 Facebook 登录,但按钮相当简单,我希望能够更改注册到 facebook 按钮的布局。
我们最近从 ASP.NET Framework 更改为 Core,在 Framework 中,我可以在名为 _ExternalLoginListPartial.cshtml 的文件中更改它。我查看了所有文件夹,但找不到与该文件具有相同内容的相同或任何其他相关文件。
我在Framework中的做法是这样的
@foreach (AuthenticationDescription p in loginProviders)
{
switch (@p.AuthenticationType)
{
case "Facebook":
<button type="submit" class="btn btn-default facebookButton" id="@p.AuthenticationType" name="provider" value="@p.AuthenticationType" title="Log in using your @p.Caption account">@p.AuthenticationType</button>
break;
.
.
..and so for other types..
}
}
编辑
@Chris Pratt 给出了很好的解决方案:
在脚手架项目列表的 Login.cshtml 中,我进行了以下更改:
@foreach (var provider in Model.ExternalLogins)
{
switch (@provider.DisplayName)
{
case "Facebook":
<button type="submit" class="btn btn-default facebookButton" name="provider" value="@provider.Name" title="Log in using your @provider.DisplayName account">@provider.DisplayName</button>
break;
}
}
身份现在带有默认 UI。它是一个由 Razor 页面和嵌入式静态文件组成的 Razor Class 库,通过调用 AddDefaultIdentity
(内部调用 AddDefaultUI
)包含在内。因此,您的项目中没有任何物理存在,即使一切都像直接在您的项目中一样运行。
如果您想自定义此 UI,您可以将其关闭(改为使用 AddIdentity
)并构建您喜欢的任何内容,或者(更有可能)您只想在要自定义的 Razor 页面中搭建脚手架。您项目中的任何实际内容都将有效地覆盖来自默认 UI.
在解决方案资源管理器中右键单击您的项目,然后选择“添加”>“新建脚手架项”。那里有一个用于标识的选项卡,带有一个脚手架。当您选择此项时,您将看到一个列表,其中列出了可以在其中搭建脚手架的各种 Razor 页面。Select 一个或多个您想要自定义的页面(如果您愿意,也可以只包含所有内容)。
对于此特定更改,您可以在 Login.cshtml
中找到代码。