PasswordSignInAsync成功后,User.Identity.IsAuthenticated始终为false



我有一个标准的MVC项目,包含UserManager和SignInManager对象以及一个AccountController,具有预先创建的登录和注册类型功能。

我可以在我的AspNetUsers表中注册新用户,但当我登录时,我会调用:-

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);

表格中的数据是正确的,结果是成功,这是我所期望的。

然后我尝试了以下重定向:-

case SignInStatus.Success:
    //return RedirectToLocal("/admin/");
    return RedirectToAction("Index", "Admin");

但在任何页面上,成功登录后,User.Identity.IsAuthenticated始终为false,User.Iidentity.Name为空字符串。

我做错了什么?我以前用同样的方式和同样的设置做过另一个项目,我没有遇到任何问题。

web.config

<system.web>
    <compilation debug="true" targetFramework="4.5.1" />
    <httpRuntime targetFramework="4.5.1" />
    <!--<authentication mode="Forms">
        <forms loginUrl="~/Account/Login/" timeout="1000" />
    </authentication>-->
    <authentication mode="None" />
</system.web>
<modules>
    <remove name="FormsAuthentication" />
</modules>

有人能指出我做错了什么吗?它现在引发了重大问题。

干杯!

检查项目中的App_Start文件夹中是否有Startup.Auth.cs文件。

public partial class Startup {
    public void ConfigureAuth(IAppBuilder app) {            
        // This uses cookie to store information for the signed in user
        var authOptions = new CookieAuthenticationOptions {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,                
            LoginPath = new PathString("/Account/Login"),
            LogoutPath = new PathString("/Account/Logout"),
            ExpireTimeSpan = TimeSpan.FromDays(7),
        };
        app.UseCookieAuthentication(authOptions);
    }
}

并从CCD_ 3类调用

public partial class Startup {
    public void Configuration(IAppBuilder app) {
        // Surface Identity provider
        ConfigureAuth(app);
        //..other start up code
    }
}

根据你使用的asp.net版本和身份,你应该看看这个

ASP.NET Identity AuthenticationManager与SignInManager和cookie过期

对我来说,这是web.config,行后面的注释

<system.webServer>
    <modules>
      <!--<remove name="FormsAuthentication" />
      <remove name="ApplicationInsightsWebTracking" />
      <add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
      -->
    </modules>
</system.webServer>

相关内容

  • 没有找到相关文章

最新更新