使用SID而不是用户名匹配用户数据?

时间:2013-09-25 01:19:49

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

我在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(guid)或SID是否可用于匹配?

1 个答案:

答案 0 :(得分:0)

要从用户名获取成员资格用户ID,您可以使用:

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