【问题标题】:Add user role with ValidUntil DateTime .NET Membership添加具有 ValidUntil DateTime .NET Membership 的用户角色
【发布时间】:2023-03-19 16:15:01
【问题描述】:

我用 ValidUntil 日期时间字段扩展了 UsersInRoles 表。

现在我想使用使用 .net 成员资格 AddUserToRole 功能,但我无法通过 validuntil。

我尝试覆盖,但我不能使用 LinqToSql UserInRoles 类。所以因为我只对 LinqToSql 有经验,所以我想要一些帮助如何执行 sql 查询;

我想使用我的自定义函数,比如

 public bool AddUserToRole(Guid UserID, string RoleName, DateTime? ValidUntil)
 {
       Guid RoleID = StaticValue.GetRoleID(RoleName); 
       // add new UserID = UserID, RoleId = RoleID, ValidUntil = ValidUntil

 }

【问题讨论】:

  • 喜欢这个:)。我愿意提供帮助,但 SO 规则需要您的努力。进展如何?
  • it np,我认为有人有更好的解决方案,但如果只需要纯 sql 查询,它很容易学习,因为是基本插入 :)
  • 您提出问题的方式决定了您得到的答复。从您的问题来看,它表明您只想执行 sql 查询
  • 请接受最佳答案,尽管它们并不完全符合您的要求。它会帮助社区。此外,这只是对那些花时间回答您问题的人说“谢谢”的一种方式。

标签: asp.net asp.net-membership roles membership-provider


【解决方案1】:

当你调用Roles.AddUserToRole时,它会调用这个函数

static public void AddUserToRole(string username, string roleName){
   ...
   Provider.AddUsersToRoles(new string [] {username}, new string [] {roleName}); 
   ... 
} 

Provider.AddUsersToRoles 从上面的函数调用 RoleProvider 的 AddUsersToRoles

public abstract void AddUsersToRoles(string[] usernames, string[] roleNames);

底线是您不能调用在自定义角色提供程序中创建的自定义函数,例如 Roles.AddUserToRole(-, -, -)

相反,您必须创建自己的角色服务/管理器类,并自己插入/更新/删除到 UsersInRoles 表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 2017-01-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    相关资源
    最近更新 更多