【问题标题】:Matching User Data with SID instead of Username?将用户数据与 SID 而不是用户名匹配?
【发布时间】:2013-09-25 01:19:49
【问题描述】:

我能找到的所有在 Lightswitch 中存储/过滤数据的示例最终都是直接比较用户名,例如:

partial void OrdersForUser_PreprocessQuery(ref IQueryable query)
{
    // Only show the Orders for the current user
    query = query.Where(x => x.UserName == this.Application.User.Identity.Name);
}

这对我来说似乎是个坏主意,因为用户名可以(并且确实)改变。

ASP.NET Membership UserID (a guid) 或 SID 是否可用于匹配?

【问题讨论】:

  • 是的,您可以从代码中获取正在运行的用户的 SID,但是无论您查询的内容是否有 SID 可供比较?
  • 好吧,我会有一张带有varbinary(85) 键的桌子。

标签: c# .net security windows-authentication visual-studio-lightswitch


【解决方案1】:

要从用户名中获取 Membership UserID,您可以使用:

MembershipUser CurrentUser = Membership.GetUser(this.Application.User.Identity.Name);
Guid userGuid = (Guid)CurrentUser.ProviderUserKey;

【讨论】:

  • 我试了一下;我希望提高自己对此的了解,因此请对我所说的话持保留态度,并请提供有关如何改进的任何反馈。如果这不适用于您,请告诉我,我将删除答案。
猜你喜欢
  • 2021-08-25
  • 1970-01-01
  • 2015-04-25
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
  • 2011-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多