gpt4 book ai didi

c# - 在 winforms 项目中实现 IPrincipal

转载 作者:行者123 更新时间:2023-11-30 14:19:57 26 4
gpt4 key购买 nike

我正在尝试在我当前的 winforms 项目中实现授权和身份验证。身份验证还必须与 SQL Server 2008 数据库中的用户相匹配。问题是,它是一个多用户程序,所以当添加新用户时,会创建一个数据库并将用户身份添加到数据库中。

我想知道是否可以实现 IPrincipal 和 IIdentity。到目前为止,我只找到了 ASP.NET 实现。

关于在 winforms 应用程序中实现密码/用户 ID 安全性的最佳方法,任何人都可以给我一些指导吗?请记住,它必须使用 SQL Server 中的数据库进行验证。

这意味着该用户必须存在一个数据库,并且他们的凭据需要正确。

最佳答案

您可以通过编写实现该接口(interface)的类来实现您自己的 IPrincipal 对象。

由于您要使用 Windows 以外的源来提供用户名和密码,因此您还需要编写自己的 IIdentity 实现。

幸运的是,这些不是大型接口(interface)。

对于您的自定义 IIdentity,我将创建一个登录表单,尝试在 SQL 2008 数据库中查找用户名/密码组合。如果找到,那么您唯一关心的是如何填充该用户的“角色”以提供接口(interface)外的 IsInRole(string roleName) 方法的功能。

这里是一个链接 detailed article on how to accomplish in both Winforms and ASP.NET

更新

此外,一旦您将此委托(delegate)人附加到当前线程(以及后续创建的线程),您还可以向您的代码添加属性,“要求”当前委托(delegate)人属于给定角色,或具有给定名称。

很好example of that is this文章。

关于c# - 在 winforms 项目中实现 IPrincipal,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1932592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com