Authentication ASP.NETMVC4简单成员身份指定模式
我试图弄清楚如何设置ASP.NETMVC4的简单成员身份。在我的当前数据库中容纳用户的表具有不同的模式,而不是“dbo”。如何在初始化数据库连接时指定架构:Authentication ASP.NETMVC4简单成员身份指定模式,authentication,asp.net-mvc-4,simplemembership,Authentication,Asp.net Mvc 4,Simplemembership,我试图弄清楚如何设置ASP.NETMVC4的简单成员身份。在我的当前数据库中容纳用户的表具有不同的模式,而不是“dbo”。如何在初始化数据库连接时指定架构: WebSecurity.InitializeDatabaseConnection ( connectionStringName: "GuessAListConnection", userTableName: "UserProfil
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生成成员表。也许有一种方法可以创建一个自定义成员表,但我还没有弄清楚。看看这个线程: