Asp.net mvc 4 Identity.IsAuthenticated在azure上始终为true

Asp.net mvc 4 Identity.IsAuthenticated在azure上始终为true,asp.net-mvc-4,Asp.net Mvc 4,我目前正在开发一个带有ASP.NETMVC框架的网站,以供自己消遣,我决定 停止使用本地数据库并在azure上发布我的web应用程序及其关联数据库。 现在我有一个奇怪的身份验证问题。Identity.IsAuthenticated始终为true。 起初,我得到了以下错误: 提供的索赔实体上不存在“”或“”类型的索赔。要使用基于声明的身份验证启用防伪令牌支持,请验证配置的声明提供程序是否在其生成的ClaimSideEntity实例上提供了这两个声明。如果配置的索赔提供程序使用不同的索赔类型作为唯一

我目前正在开发一个带有ASP.NETMVC框架的网站,以供自己消遣,我决定 停止使用本地数据库并在azure上发布我的web应用程序及其关联数据库。 现在我有一个奇怪的身份验证问题。Identity.IsAuthenticated始终为true。 起初,我得到了以下错误:

提供的索赔实体上不存在“”或“”类型的索赔。要使用基于声明的身份验证启用防伪令牌支持,请验证配置的声明提供程序是否在其生成的ClaimSideEntity实例上提供了这两个声明。如果配置的索赔提供程序使用不同的索赔类型作为唯一标识符,则可以通过设置静态属性AntiForgeryConfig.uniqueclaimtypeignifier对其进行配置

在没有太多理解的情况下,我找到了一个解决方案,即在global.cs文件中配置AntiForgery令牌

AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.Name;
此时错误停止显示,但在AspNetUsers表中不存在标识的用户。当然,当我试图在需要身份验证的部分从用户那里获取信息时,应用程序会崩溃,因为不存在任何条目

在我的布局中,我有一段代码,用于在用户经过身份验证时显示一些数据

@if (User.Identity.IsAuthenticated)
{
    using (Html.BeginForm("LogOff", "Account", FormMethod.Post, new { id = "logoutForm", @class = "navbar-right" }))
    {
        @Html.AntiForgeryToken()

        <ul class="nav navbar-nav navbar-right">
            <li>
                @Html.ActionLink("Hello " + User.Identity.GetUserName() + "!", "Index", "Manage", routeValues: null, htmlAttributes: new { title = "Manage" })
            </li>
            <li><a href="javascript:document.getElementById('logoutForm').submit()">Log off</a></li>
        </ul>
    }
}
@if(User.Identity.IsAuthenticated)
{
使用(Html.BeginForm(“注销”、“帐户”、FormMethod.Post、新的{id=“logoutForm”、@class=“navbar right”}))
{
@Html.AntiForgeryToken()
  • @ActionLink(“Hello”+User.Identity.GetUserName()+”!,“Index”,“Manage”,routeValue:null,htmlAttributes:new{title=“Manage”})
} }
User.Identity.GetUserName()总是返回live.com#[MyAzureAccount]@outlook.com,我无法注销


这似乎是一个身份问题,但由于我没有接触到启动项目时生成的代码,而且它在本地工作,我希望它能工作。

解决方案只是从azure下载发布文件,而不是手动填充发布字段。我真的不知道为什么它会起作用,但它解决了问题。

您是否:1)删除了所有的cookie?2) 尝试隐姓埋名模式?隐姓埋名模式显示了一些有趣的东西,我必须登录我的azure帐户才能访问应用程序。我现在需要找出这一切发生的原因。谢谢你的主意。那可能是因为流浪饼干;)我不知道他们是什么,但我肯定会调查的。如果我找到了解决方案,我会在没有人回答的情况下发布