Authentication ASP.NETMVC4简单成员身份指定模式

Authentication ASP.NETMVC4简单成员身份指定模式,authentication,asp.net-mvc-4,simplemembership,Authentication,Asp.net Mvc 4,Simplemembership,我试图弄清楚如何设置ASP.NETMVC4的简单成员身份。在我的当前数据库中容纳用户的表具有不同的模式,而不是“dbo”。如何在初始化数据库连接时指定架构: WebSecurity.InitializeDatabaseConnection ( connectionStringName: "GuessAListConnection", userTableName: "UserProfil

我试图弄清楚如何设置ASP.NETMVC4的简单成员身份。在我的当前数据库中容纳用户的表具有不同的模式,而不是“dbo”。如何在初始化数据库连接时指定架构:

            WebSecurity.InitializeDatabaseConnection
            (
                connectionStringName: "GuessAListConnection",
                userTableName: "UserProfile",
                userIdColumn: "UserId",
                userNameColumn: "UserName",
                autoCreateTables: false
            );
没有模式的选项。我尝试将模式附加到userTableName,但这会产生错误。有什么建议吗

谢谢


Tom将使用数据库用户的默认模式。没有办法指定我知道的不同模式。

如果用户/身份验证表的模式与dbo不同(或数据库用户的默认模式),我发现了另一种解决方案,即使用视图

在我的数据库中,我的用户/身份验证表的范围是“安全”模式。我还有一个Person模式,Person表位于其中。我只在Person表中存储FirstName和LastName

我创建了一个视图,将所有表拉到一起进行身份验证,并返回以下字段:

UserId、UserName、PersonId、FirstName、LastName、AuthenticationType、LastLoginDate、IsLockedOut

在我的应用程序中,我可以通过多种不同的方式对一个人进行身份验证:表单、Windows、Facebook、Twitter等。用户ID、用户名与不同的身份验证类型相关

这是我在ASP.Net MVC中的UserProfile类:

  [Table("__vwRegisteredUser")]
  public class UserProfile
  {
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public String UserName { get; set; }
    public int PersonId { get; set; }
    public String FirstName { get; set; }
    public String LastName { get; set; }
    public String AuthenticationTypeName { get; set; }
    public Boolean IsLockedOut { get; set; }
    public DateTime LastLoginDate { get; set; }

    public int Id
    {
        get
        {
            return PersonId;
        }
    }

    public String Name
    {
        get
        {
            return String.Format("{0} {1}", FirstName, LastName);
        }
    }
}
请注意,我使用视图作为表属性。我还将PersonId作为Id属性返回,并将FirstName和LastName作为Name属性连接在一起。用户名是从我的身份验证类型返回的值(Windows用户名、电子邮件地址(如果我使用Forms身份验证),或者Facebook或Twitter返回的任何内容)。所以,我的Security.Authentication表中的用户名不一致

初始化数据库连接仍然需要一个表,以便SimpleMembership生成成员表。也许有一种方法可以创建一个自定义成员表,但我还没有弄清楚。

看看这个线程: