如何使WebSecurity.CreateUserAndAccount在没有唯一用户名的情况下工作

时间:2014-01-25 13:47:23

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我创建了一个默认的ASP.NET MVC 4项目,其中包含一个使用表单身份验证的帐户控制器。 现在,我想让用户帐户在给定的系统实例中不是唯一的(每个用户都有自己的SystemInstanceId),方式是:

  • 可以在公司1的系统实例中使用username1(website_address / company1),在公司2的系统实例中使用相同的username1(website_address / company2)
  • 无法在一个系统实例中使用username1

public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }
    public string UserName { get; set; }
    public int SystemInstanceId { get; set; }
}

在AccountController中,我使用以下代码,但它不能正常工作:

WebSecurity.CreateUserAndAccount(
    model.UserName, 
    model.Password, 
    propertyValues: new { SystemInstanceId = systemInstanceRepository.GetCurrentSystemInstanceId(RouteSegmentHelpers.GetSystemInstanceSegment(RouteData)) }
);

上面的代码使我无法在数据库表中为两个不同的系统实例注册相同的用户名,因为我希望用户能够为不同的公司使用相同的登录。

0 个答案:

没有答案