用户'''(DevMachine)'拒绝访问(使用密码:否)MVC5身份MySQL

时间:2016-08-29 21:02:22

标签: mysql asp.net-mvc-5 asp.net-identity

我正在开发一个MVC 5应用程序,它通过Facebook登录验证用户。 Login功能正在使用SQL Server。我正在将数据集迁移到本地mySQL数据库。

我一直在关注这两页的说明: Implementing a custom MySQL Identity Storage Provider EF6 Support

登录部分正在运行,但我在视图中遇到上述错误:

userInfo

以下是我的构造函数:

@if (Request.IsAuthenticated && User.IsInRole(MyConstants.Defaults.Roles.Admin))

我的默认连接字符串包含用户名和密码。还有其他地方我需要提供它的参考吗?

更新31/08

以下是错误的堆栈跟踪。除了调用System.Web.Security.RolePrincipal之外,执行还直接跳转到mysql Provider。我认为代码绕过了我设置的自定义身份提供程序 - 如果我在代码中明确地调用它,它可以工作吗?

public class ApplicationDbContext : MySQLDatabase
{
    public ApplicationDbContext(string connectionName)
        : base("DefaultConnection")
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext("DefaultConnection");
    }
}

1 个答案:

答案 0 :(得分:1)

我在Nuget中使用预先构建的MySQL身份提供程序尝试了另一个mySQL Identity示例 - 在视图中添加User.IsInRole子句并没有轰炸应用程序,但是无论角色是什么,答案总是回归错误用户是。的成员。

在另一个与此问题相关的SO问题中,提出了以下解决方案: https://stackoverflow.com/a/31325939/530762

在Web.Config中,我已经删除了FormsAuthenticationManager,但添加此行就可以了:

<modules>
    <remove name="RoleManager" />
</modules>