【发布时间】:2013-10-18 20:07:09
【问题描述】:
我正在开发一个带有 Windows 身份验证的简单 ASP.NET Intranet。我正在使用 Active Directory 对用户进行身份验证以允许他们访问该站点,但我希望实施特定于站点的用户角色来管理页面和内容访问,而不会干扰或添加到现有的 Windows 用户组。
我对如何实现这一点的想法是创建一个UserRoles 表,并为每个用户在Users 表中放置一个特定的RoleId。然后我会将Currently Logged In 用户名与Users 表进行比较,以找出用户所在的角色。
问题 1:
这是解决这个问题的好方法吗?
问题 2(如果问题 1 的答案是肯定的):
如何为当前用户选择正确的 RoleId,并在 IF 语句中使用?
这就是我的想法:
var db = Database.Open("Database") ;
// Find out what my Windows Username is
var currentUser = Request.LogonUserIdentity.Name.Substring(Request.LogonUserIdentity.Name.LastIndexOf(@"\") + 1);
// Find out what Role I'm in
var getUser = "SELECT RoleId FROM Users WHERE UserID = @0";
// Get the result
var selectedUser = db.Query(getUser, currentUser);
var requiredRole = "1";
// Choose where I should go
if (SelectedRoleId != requiredRole)
{
Response.Redirect("~/AreaRestricted");
}
任何帮助都会很棒。
【问题讨论】:
标签: asp.net asp.net-webpages user-roles