【问题标题】:WPF C#-multiple user privilegesWPF C#-多用户权限
【发布时间】:2015-06-13 11:35:27
【问题描述】:

我想使用 c# wpf 为不同的用户显示不同的菜单。

另外,我已经有多个登录只使用 oracle 数据库。

我想通过 C# 控制用户权限。

【问题讨论】:

  • 我的回答有用吗?请发表您的反馈意见。

标签: c# wpf privileges


【解决方案1】:

Aravindhan – 首先,您需要有适当的身份验证和授权流程。那么,如何进行身份验证:

http://blog.magnusmontin.net/2013/03/24/custom-authorization-in-wpf/

基本上,您需要实现 .Net 提供给您的上述链接中描述的接口。当您使用 IAuthenticationService ->AuthenticateUser 方法时,您必须为此提供 Oracle 实现。

实现将类似于下面的sn-p:

public User AuthenticateUser(string username, string clearTextPassword){
        var List<InternalUserData> _users = GetUsersList();
            InternalUserData userData = _users.FirstOrDefault(u => u.Username.Equals(username) 
                && u.HashedPassword.Equals(CalculateHash(clearTextPassword, u.Username)));
            if (userData == null)
                throw new UnauthorizedAccessException("Access denied. Please provide some valid credentials.");

            return new User(userData.Username, userData.Email, userData.Roles);
        }

Public List<InternalUserData> GetUsersList(){
   string sql = "SELECT Username, Email, Password, Userole FROM USER"; 
    command.CommandText = sql; 
 var List< InternalUserData> listUsers = new List< InternalUserData>();
    OracleDataReader reader = command.ExecuteReader(); 
    while (reader.Read()) 
    {
listUsers.Add( new InternalUserData((string)reader["Username"], (string)reader["Email"], (string)reader["Password"],new string[] { (string)reader["Userole "]})
    }
return listUsers;

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2015-02-10
    • 2018-12-10
    • 2010-09-13
    相关资源
    最近更新 更多