使用Navbar登录Google帐户



我正在使用默认模板ASP.NET MVC 5项目使用Identity。我已经成功地将Google OAuth链接到了我的应用程序,并且可以登录,但是我正在尝试修改navbar以替换链接中的ling从/Account/Login替换log,以直接从第一个主页中的navbar登录Google。/p>

我当前的_loginpartial.cshtml

ul class="nav navbar-nav navbar-right">
  @*  <li>@Html.ActionLink("Register", "Register", "Account", routeValues: null, htmlAttributes: new { id = "registerLink" })</li>*@
    <li>@Html.ActionLink("Log in", "Login", "Account", routeValues: null, htmlAttributes: new { id = "loginLink" })</li>
</ul>

我该怎么做?

预先感谢。

创建一个称为_externallogin.cshtml的新的部分视图。在_loginpartial.cshtml中,只需评论您上面在此问题中写的代码,然后将部分视图调用,

<ul class="nav navbar-nav navbar-right">
   @Html.Partial("_ExternalLogIn",new ExternalLoginListViewModel())
</ul>

看到您可能会在此处出现ExternalloginListViewModel()的错误。因此,您需要像这样的页面顶部添加参考,

@using MyProject.Web.Models

然后在您的_externallogin部分视图中写下

@model MyProject.Web.Models.ExternalLoginListViewModel
@using Microsoft.Owin.Security
@{
var loginProviders = 
Context.GetOwinContext().Authentication.GetExternalAuthenticationTypes();
if (loginProviders.Count() != 0)
{
    using (Html.BeginForm("ExternalLogin", "Account", new { ReturnUrl = 
    Model.ReturnUrl }))
    {
        @Html.AntiForgeryToken()
        foreach (AuthenticationDescription provider in loginProviders)
        {
            if (provider.AuthenticationType == "Facebook")
            {
             <li>
              <div class="form-group">
               <button type="submit" class="btn btn-block btn-social  
                 btn-gplus" name="provider"  
                  id="@provider.AuthenticationType" 
                   value="@provider.AuthenticationType" 
                     style="width:100%;text-align:left;border-
                      radius:0px;color:white">                              
                </button>
                </div>
              </li>
            }
        }

根据您的要求更改CSS。欢呼。

相关内容

  • 没有找到相关文章

最新更新