我可以在应用程序运行时更改登录(Windows)用户吗?

我可以在应用程序运行时更改登录(Windows)用户吗?,windows,winapi,authentication,Windows,Winapi,Authentication,假设我们有一个应用程序,它有许多功能,并且每个功能都是允许使用该功能的用户权限集。该应用程序设计为始终打开,但在一天中的不同时间,我们希望不同的用户登录并使用它 我们希望使用内置的Windows用户帐户(用于身份验证)和Windows组(用于功能访问),而不是重新发明轮子并创建另一个用户帐户和密码系统 是否可以让应用程序保持运行,但让不同的用户登录并注销应用程序而不注销Windows会话?当然,您可以让应用程序获得用户的Windows凭据。您还可以简单地查询组成员身份,而不请求任何凭据。更具体的

假设我们有一个应用程序,它有许多功能,并且每个功能都是允许使用该功能的用户权限集。该应用程序设计为始终打开,但在一天中的不同时间,我们希望不同的用户登录并使用它

我们希望使用内置的Windows用户帐户(用于身份验证)和Windows组(用于功能访问),而不是重新发明轮子并创建另一个用户帐户和密码系统


是否可以让应用程序保持运行,但让不同的用户登录并注销应用程序而不注销Windows会话?

当然,您可以让应用程序获得用户的Windows凭据。您还可以简单地查询组成员身份,而不请求任何凭据。更具体的信息将有助于得到更具体的答案。例如,您使用的是哪种语言?

有一种称为的机制(链接指向.NET文档,但提供了类似的功能)。它允许您在与当前登录的用户不同的用户上下文中以编程方式运行代码。但是,您描述的模型还有其他安全含义。特别是:如何保护运行程序的工作站的其余部分?

可能需要使用LogonUser()和impersonateloggonouser()以及自定义GINA?感谢链接-这里有一些很好的示例代码:。