C# 如何检查用户是否为管理员

C# 如何检查用户是否为管理员,c#,sql-server,C#,Sql Server,如果用户不是管理员,我想阻止客户端应用程序的功能。但问题是如何在程序中签入登录名和密码是管理员的?我假设有两件事: 您想知道登录用户是否是SQL Server上下文中的管理员 所有“管理员”用户都属于某个角色,例如db\u owner。(很抱歉,我面前没有SQL Server,也记不清所有的角色名,所以我从MSDN文档页面示例中提取了一个足够接近的角色名。) 如果这些假设成立,那么它看起来会起作用。在ASP.Net中,您将使用Page.User.IsInRole(“RoleName”),或者在W

如果用户不是管理员,我想阻止客户端应用程序的功能。但问题是如何在程序中签入登录名和密码是管理员的?

我假设有两件事:

  • 您想知道登录用户是否是SQL Server上下文中的管理员
  • 所有“管理员”用户都属于某个角色,例如
    db\u owner
    。(很抱歉,我面前没有SQL Server,也记不清所有的角色名,所以我从MSDN文档页面示例中提取了一个足够接近的角色名。)

  • 如果这些假设成立,那么它看起来会起作用。

    在ASP.Net中,您将使用Page.User.IsInRole(“RoleName”),或者在Windows中,您可以使用System.Threading.Thread.CurrentPrincipal.IsInRole(“RoleName”)

    或 运行以下存储过程,该过程将为您提供与任何用户关联的所有权限

    sp_helprotect @username = 'guest'
    
    sp_helprotect @username = 'guest'